PHP 中替换函数主要有 strtr() 和 str_repalce() 这两个函数,但你们都知道他们这两个函数的区别和用法吗?先来看看这个 PHP 字符串替换函数 strtr() 的两种用法:
strtr(string, from, to)
或
strtr(string, array)
首先针对 strtr() 函数第一种方式,我们看看下面的举例:
echo strtr("I Love you", "Lo", "lO");
得到的结果是:
I lOve yOu
这个结果提醒我们:
再举一个特殊例子,说明这个 PHP 的 strtr() 函数的怪异
echo strtr("I Love you", "Love", "");
结果是:
I Love you
什么也不会改变,所以 strtr() 需要注意的是:
也就是末位那个参数不能是空字符串,当然空格是可以的。
再次举例 strtr() 函数的另一种情况:
echo strtr("I Loves you","Love","lOvEA");
结果是:
I lOvEs yOu
注意看第三个参数的 A,在结果中并没有出现。
既然这个 strtr() 函数挺麻烦为什么还要用呢?原因是它的速度很快。据说 strtr() 比 str_replace() 快四倍。
那怎么用才舒服?
这就是它的第二种情况:
strtr(string, array)
$table_change = array('you'=>'her sister');
echo strtr("I Love you", $table_change);
结果为:
I Love her sister
比如:
$table_change = array('you'=>'her sister');
$table_change += array('Love' => 'hate');
echo strtr("I Love you",$table_change);
结果是:
I hate her sister
再次提醒那个 Love 写成 love 是行不通的哦。
string str_replace(string needle, string str, string haystack);
下例将 %body% 以 black 取代
$bodytag = str_replace("%body%", "black", "<body text=%body%>");
echo $bodytag;
格式:
实例:

