黃聰:PHP字符串操作(string替換、刪除、截取、復制、連接、比較、查找、包含、大小寫轉換、切割成數組等)


一、字符串替換

str_replace("iwind", "kiki", "i love iwind, iwind said");
將輸出 "i love kiki, kiki said"

str_replace(find,replace,string,count)參數 描述 

find 必需。規定要查找的值。 
replace 必需。規定替換 find 中的值的值。 
string 必需。規定被搜索的字符串。 
count 可選。一個變量,對替換數進行計數。

 

二、字符串刪除

方法一

$string = 'fdjborsnabcdtghrjosthabcrgrjtabc';
$string = preg_replace('/[abc]+/i','',$string);

方法二

把字符串轉化成數組

$arr = str_split($string);
foreach( $arr as $key => $value ){
if( in_array($value,array('a','b','c')) ){
unset($arr[$key]);
}
}
$string = implode('',$arr);

 

三、字符串截取

<?
  //構造字符串
  $str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  echo "原字符串:".$str."
";
  //按各種方式進行截取
  $str1 = substr($str,5);
  echo "從第5個字符開始取至最后:".$str1."
";
  $str2 = substr($str,9,4);
  echo "從第9個字符開始取4個字符:".$str2."
";
  $str3 = substr($str,-5);
  echo "取倒數5個字符:".$str3."
";
  $str4 = substr($str,-8,4);
  echo "從倒數第8個字符開始向后取4個字符:".$str4."
";
  $str5 = substr($str,-8,-2);
  echo "從倒數第8個字符開始取到倒數第2個字符為止:".$str5."
";
 ?>

支持中英文混合截取。

/*
------------------------------------------------------
參數:
$str_cut    需要截斷的字符串
$length     允許字符串顯示的最大長度
程序功能:截取全角和半角(漢字和英文)混合的字符串以避免亂碼
------------------------------------------------------
*/
function substr_cut($str_cut,$length)
{
    if (strlen($str_cut) > $length)
    {
        for($i=0; $i < $length; $i++)
        if (ord($str_cut[$i]) > 128)    $i++;
        $str_cut = substr($str_cut,0,$i)."..";
    }
    return $str_cut;
}
?>

 

四、字符串比較

在PHP中,可以用==(雙等號)或者 ===(三等號)來比較字符串。兩者的區別是雙等號不比較類型,三等號會比較類型,它不轉換類型;用雙等號進行比較時,如果等號左右兩邊有數字類型的值,剛會把另一個值轉化為數字,然后進行比較。這樣的話,如果是純字符串或者NULL時,會轉化為0進行比較。同樣,大小於號也和等號一樣,比較時可能出現不正確的結果。
所以,比較字符串可以用PHP的自帶函數strcmp和strcasecmp。其中strcasecmp是strcmp的變種,它會先把字符串轉化為小寫再進行比較。 如下代碼: 

var_dump(0 == 'Test'); 
var_dump(0 == ''); 
var_dump(5 > 'T'); 
var_dump(strcmp(5, 'T'));

 

結果為(第1~3結果是不對的,只有第4個是對的): 

bool(true) 
bool(true) 
bool(true) 
int(-1) 

 

五、字符串查找

strstr()函數用於獲取一個指定字符串在另一個字符串中首次出現的位置到后者末尾的子字符串,如果執行成功,則返回剩余字符串(存在相匹配的字符);如果沒有找到相匹配的字符,則返回false。

語法:string strstr(string haystack,string needle)

參數:haystack:必要參數,指定從哪個字符串中進行搜索。

參數:needle:必要參數,指定搜索的對象,如果該參數是一個數值,那么將搜索與這個數值的ASCII值相匹配的字符。

實例代碼如下:

<?php 
echo strstr(“明日編程詞典”,”編”);  //輸出查詢的字符串 
echo “<br>”;                      //執行回車 
echo strstr(“www.phpfensi.com”,”111”);  //輸出查詢的字符串(從第一個m取值) 
echo “<br>”;                         //執行回車 
echo strstr(“0431-84972266″,”8″);    //輸出查詢的字符串 
?> 

 

定義和用法:strpos() 函數返回字符串在另一個字符串中第一次出現的位置,如果沒有找到該字符串,則返回 false。

語法:strpos(string,find,start)

參數:string 必需,規定被搜索的字符串。

參數:find 必需,規定要查找的字符。

參數:start 可選,規定開始搜索的位置。

注釋:該函數對大小寫敏感,如需進行對大小寫不敏感的搜索,請使用 stripos() 函數。

實例代碼如下:

<?php 
echo strpos("Hello world!","wo"); 
?>//輸出:6 

 

六、字符串大小寫轉換

<?php
$foo = 'hello world!';
$foo = ucwords($foo); // Hello World!$bar = 'HELLO WORLD!';
$bar = ucwords($bar); // HELLO WORLD!
$bar = ucwords(strtolower($bar)); // Hello World!
?>
第一個詞首字母變大寫:ucfirst()
<?php
$foo = 'hello world!';
$foo = ucfirst($foo); // Hello world!$bar = 'HELLO WORLD!';
$bar = ucfirst($bar); // HELLO WORLD!
$bar = ucfirst(strtolower($bar)); // Hello world!
?>
第一個詞首字母小寫lcfirst()
<?php
$foo = 'HelloWorld';
$foo = lcfirst($foo); // helloWorld
$bar = 'HELLO WORLD!';
$bar = lcfirst($bar); // hELLO WORLD!
$bar = lcfirst(strtoupper($bar)); // hELLO WORLD!
?>
字母變大寫:strtoupper()
字母變小寫:strtolower()

 

七、字符串切割

<?php
$str="1|2|3|4|5|";
$var=explode("|",$str);
print_r($var);
?>
$var=explode("|",$str);

把$str按|進行分割,php還有其他的把字符串指定字符分割成數組


str_split(string,length)參數 描述
string 必需。規定要分割的字符串。
length 可選。規定每個數組元素的長度。默認是 1。
json_decode()這個函數也可以把字符串分割成數組 (第二個參數為true才行)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM