在php中str_ireplace()str_replace函數就是字符替換了,我覺得他們最大的區別就是一個對大小寫不敏感,一個對大小寫敏感其它的都一樣。
str_replace() 函數
定義:使用一個字符串替換字符串中的另一些字符,對大小寫敏感的搜索
語法:
str_replace(find,replace,string,count)
實例:
輸出
hupengstudying.com hupeng
通過上面的描述和實例對比,相信大家都很清楚的了解了php中str_replace() 函數與str_ireplace() 函數的區別
str_replace使用
大家可以實際運行下下面的代碼,調試一下。
// Provides: Hll Wrld f PHP
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");
// Provides: You should eat pizza, beer, and ice cream every day
$phrase = "You should eat fruits, vegetables, and fiber every day.";
$healthy = array("fruits", "vegetables", "fiber");
$yummy = array("pizza", "beer", "ice cream");
$newphrase = str_replace($healthy, $yummy, $phrase);
// Use of the count parameter is available as of PHP 5.0.0
$str = str_replace("ll", "", "good golly miss molly!", $count);
echo $count; // 2
?>
str_replace詳解
在都不使用數組時,該函數直接使用replace替換所有的search並返回替換後的字符串。如:str_replace("m","n","my name is jim!")返回ny nane is jin!
1、只對search使用數組。
示例:str_replace(array('m','i'),'n',"my name is jim!");返回:ny nane ns jnn!
可以看出,函數順序性的對數組中每個字符串進行替換,並返回替換後的字符串。
2、只對replace使用數組。
示例:str_replace('m',array('n','z'),"my name is jim!n")返回:Arrayy naArraye is jiArray!
該替換比較有意思,如果只對第二個參數使用數組則函數將其作為字符串Array進行使用,將所有的search替換為了數組。
3、只對subject使用數組。
示例:str_replace("m","n",array("my name is jim!","the game is over!"))該語句執行結果返回一個數組,即分別為傳入的兩個字符串替換後的結果。
如果輸出數組內容會看到:ny nane is jin! the gane is over!
4、對search和replace都使用數組。
示例:str_replace(array("m","i"),array("n","z"),"my name is jim!")返回:ny nane zs jzn!
查看執行結果可以發現,如果前兩個參數都使用數組則函數把數組各個對象項字符串進行了替換,及search的第一項替換為replace的第一項。以此類推。
如果search數組比new_deedle長,例如:str_replace(array("m","i","s"),array("n","z"), "my name is jim!");返回:ny nane z jzn!可見,對於search數組多出來的字符串被替換為了空串。
如果replace數組比search長,例如:str_replace(array("m","i"),array("n","z","x"), "my name is jim!")返回ny nane zs jzn!可見replace多余的項被忽略。
5、三個參數都使用數組。
例如:str_replace(array("m","i"),array("n","z"),array("my name is jim!","the game is over"))返回的數組內容:ny nane zs jzn!the gane zs over
這個比較好理解,對兩個字符串分別執行替換。
str_replace出現亂碼原因分析
亂碼問題是漢字編碼和str_replace的工作方引起的,因為一個漢字是占兩個字節的,全角空格也相當於漢字一樣占兩個字節,一個區碼,一個位碼。不過位碼和區碼有重疊的部分。如以下代碼:
/*
xa1xa1 => " " (中文全角空格)
xcdxa1 => "汀"
xa1xa3 => "。" (中文全角句號)
xcdxa3 => "停"
*/
$str = "汀。";
echo str_replace(" ", "", $str);
?>;
以上代碼的輸出結果是 "停" 字。因為str_replace是一個字節一個字節的對比,所以會出錯