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

发布于 2018-08-20 20:48:23 字数 2406 浏览 2297 评论 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)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

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

0 文章
0 评论
84960 人气
更多

推荐作者

qq_Yqvrrd

文章 0 评论 0

2503248646

文章 0 评论 0

浮生未歇

文章 0 评论 0

养猫人

文章 0 评论 0

第七度阳光i

文章 0 评论 0

新雨望断虹

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文