php实现文本替换,php文本替换 函数 strtr()、str_repalce()
php 中替換函數主要有strtr(),str_repalce()這兩個函數,但你們都知道他們這兩個函數的區別和用法嗎?
IT我領先在這里給大家一個實例來說明這一問題.
先來看看這個php字符串替換函數 strtr()的兩種用法:
strtr(string,from,to)
或者strtr(string,array)
首先針對strtr函數第一種方式:
我們看看下面的舉例:
PHP
echo strtr("I Love you","Lo","lO");
?>
1
2
3
echostrtr("I Love you","Lo","lO");
?>
得到的結果是:
I lOve yOu
這個結果提醒我們:
1. strtr它是區分大小寫的
2. strtr的替換是很特殊的,你注意看后面那個yOu,中間的O被替換的,這顯然不是我們的本意。
再舉一個特殊例子,說明這個php的sttr函數的怪異
PHP
echo strtr("I Love you","Love","");
?>
1
2
3
echostrtr("I Love you","Love","");
?>
結果是:
I Love you
什么也不會改變,所以strtr需要注意的是:
3. 不能被替換為空,也就是末位那個參數不能是空字符串,當然 空格是可以的。
再次舉例strtr函數的另一種情況:
PHP
echo strtr("I Loves you","Love","lOvEA");
?>
1
2
3
echostrtr("I Loves you","Love","lOvEA");
?>
結果是:
I lOvEs yOu
注意看第三個參數的A,在結果中并沒有出現。
4. 我不建議用strtr以少換多。
ok,既然這個strtr函數挺麻煩為什么還要用呢?
原因是,它的速度很快。據說,strtr 比 str_replace 快四倍。
所以:
5. 能用strtr函數的時候一定要用。
那怎么用才舒服?
這就是它的第二種情況:
strtr(string,array)
6. strtr符合意愿的使用方法
PHP
$table_change = array('you'=>'her sister');
echo strtr("I Love you",$table_change);
?>
1
2
3
4
$table_change=array('you'=>'her sister');
echostrtr("I Love you",$table_change);
?>
結果為:
I Love her sister
7. 小技巧:你想到替換什么你就往數組加什么
比如:
PHP
$table_change = array('you'=>'her sister');
$table_change += array('Love' => 'hate');
echo strtr("I Love you",$table_change);
?>
1
2
3
4
5
$table_change=array('you'=>'her sister');
$table_change+=array('Love'=>'hate');
echostrtr("I Love you",$table_change);
?>
結果是:
I hate her sister
再次提醒那個Love 寫成love 是行不通的哦。
ok,亂七八糟說了一通,其實關于strtr最想說的就是這個后面的用法了,簡單方便。
貌似后面的用法也忽略掉了前后字符長度不同的問題。
str_replace
字符串取代。
語法:string str_replace(string needle, string str, string haystack);
返回值: 字符串
函數種類: 資料處理
內容說明
本函數將字符串 str 代入 haystack 字符串中,將所有的 needle 置換成 str。mlevine@adtraq.com (11-Apr-1999) 指出在 PHP 3.0.7 版
本函數有些 bug,而 nadeem@bleh.org (05-Jun-1999) 補充在 PHP 3.0.8 版本函數就回復正常了。
使用范例
下例將 %body% 以 black 取代
PHP
$bodytag = str_replace("%body%", "black", "
");echo $bodytag;
?>
1
2
3
4
$bodytag=str_replace("%body%","black","
");echo$bodytag;
?>
參考
ereg_replace()
提示和注釋
注釋:該函數對大小寫敏感。請使用 str_ireplace() 執行對大小寫不敏感的搜索。
注釋:該函數是二進制安全的。
例子
例子 1
PHP
echo str_replace("world","John","Hello world!");
?>
1
2
3
echostr_replace("world","John","Hello world!");
?>
輸出:
Hello John!
例子 2
在本例中,我們將演示帶有數組和 count 變量的 str_replace() 函數:
PHP
$arr = array("blue","red","green","yellow");
print_r(str_replace("red","pink",$arr,$i));
echo "Replacements: $i";
?>
1
2
3
4
5
$arr=array("blue","red","green","yellow");
print_r(str_replace("red","pink",$arr,$i));
echo"Replacements: $i";
?>
輸出:
Array
(
[0] => blue
[1] => pink
[2] => green
[3] => yellow
)
例子 3
PHP
$find = array("Hello","world");
$replace = array("B");
$arr = array("Hello","world","!");
print_r(str_replace($find,$replace,$arr));
?>
1
2
3
4
5
6
$find=array("Hello","world");
$replace=array("B");
$arr=array("Hello","world","!");
print_r(str_replace($find,$replace,$arr));
?>
輸出:
Array
(
[0] => B
[1] =>
[2] => !
)
總結
以上是生活随笔為你收集整理的php实现文本替换,php文本替换 函数 strtr()、str_repalce()的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安居客app怎么下架自己发布的房源
- 下一篇: 凭密码就能窃取“你的整个数字生活”iPh