PHP 中替换字符串函数 Strtr() 和 Str_repalce() 区别 - 文章教程

PHP 中替换字符串函数 Strtr() 和 Str_repalce() 区别

发布于 2018-08-20 字数 2920 浏览 1899 评论 0

PHP 中替换函数主要有 strtr() 和 str_repalce() 这两个函数,但你们都知道他们这两个函数的区别和用法吗?先来看看这个 PHP 字符串替换函数 strtr() 的两种用法:

strtr(string, from, to)

strtr(string, array)

首先针对 strtr() 函数第一种方式,我们看看下面的举例:

echo strtr("I Love you", "Lo", "lO");

得到的结果是:

I lOve yOu

这个结果提醒我们:

  1. strtr() 它是区分大小写的
  2. 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;

格式:

  1. str_replace(“要替换的旧内容”,  “要取代原内容的新字符”,  $被替换内容的变量名)
  2. str_replace(array(‘旧1′,’旧2′,’旧3’),  array(‘新1′,’新2′,’新3’),  $被替换内容的变量名)
  3. str_replace(array(‘旧1′,’旧2′,’旧3’),  ‘新内容’,  $被替换内容的变量名)

实例:

  1. 多对一替换:想把内容字段里所有的 <p></p> 标签清除掉,替换成空 str_replace(array('<p>','</p>'), '', $Content)
  2. 一对一替换:想把内容字段里所有的 <br> 标签换成 <p> str_replace('<br>', '<p>', $Content)
  3. 多对多替换:想把内容字段里的 <br> 换成 <br />,同时 <p><hr>,把 </p> 全清除 str_replace(array('<br>', '<p>','</p>'), array('<br />','<hr>',''), $Content)

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

目前还没有任何评论,快来抢沙发吧!

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

2583 文章
29 评论
84935 人气
更多

推荐作者

nuj316

文章 0 评论 0

梦中楼上月下

文章 2 评论 0

kook

文章 0 评论 0

thousandcents

文章 0 评论 0

像你

文章 1 评论 0