PHP 中替换字符串函数 Strtr() 和 Str_repalce() 区别
PHP 中替换函数主要有 strtr() 和 str_repalce() 这两个函数,但你们都知道他们这两个函数的区别和用法吗?先来看看这个 PHP 字符串替换函数 strtr() 的两种用法:
strtr(string, from, to)
或
strtr(string, array)
首先针对 strtr() 函数第一种方式,我们看看下面的举例:
echo strtr("I Love you", "Lo", "lO");
得到的结果是:
I lOve yOu
这个结果提醒我们:
- strtr() 它是区分大小写的
- strtr() 的替换是很特殊的,你注意看后面那个 yOu,中间的 O 被替换的,这显然不是我们的本意。
再举一个特殊例子,说明这个 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() 函数挺麻烦为什么还要用呢?原因是它的速度很快。据说 strtr() 比 str_replace() 快四倍。
能用 strtr 函数的时候一定要用。
那怎么用才舒服?
这就是它的第二种情况:
strtr(string, array)
strtr() 符合意愿的使用方法
$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 是行不通的哦。
str_replace 函数。
string str_replace(string needle, string str, string haystack);
下例将 %body%
以 black
取代
$bodytag = str_replace("%body%", "black", "<body text=%body%>"); echo $bodytag;
格式:
- str_replace("要替换的旧内容", "要取代原内容的新字符", $被替换内容的变量名)
- str_replace(array('旧1','旧2','旧3'), array('新1','新2','新3'), $被替换内容的变量名)
- str_replace(array('旧1','旧2','旧3'), '新内容', $被替换内容的变量名)
实例:
- 多对一替换:想把内容字段里所有的
<p></p>
标签清除掉,替换成空str_replace(array('<p>','</p>'), '', $Content)
- 一对一替换:想把内容字段里所有的
<br>
标签换成<p>
str_replace('<br>', '<p>', $Content)
- 多对多替换:想把内容字段里的
<br>
换成<br />
,同时<p>
换<hr>
,把</p>
全清除str_replace(array('<br>', '<p>','</p>'), array('<br />','<hr>',''), $Content)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论