標籤:
一、字串替換
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才行)
黃聰:PHP字串操作(string替換、刪除、截取、複製、串連、比較、尋找、包含、大小寫轉換、切割成數組等)