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