Home >php教程 >php手册 >PHP中strtr字符串替换用法详解

PHP中strtr字符串替换用法详解

WBOY
WBOYOriginal
2016-06-06 20:16:421319browse

这篇文章主要介绍了PHP中strtr字符串替换用法,以大量实例详细解读了strtr字符串替换的用法与技巧,并与str_replace做了对比以加深理解,需要的朋友可以参考下

本文实例讲述了PHP中strtr字符串替换用法。分享给大家供大家参考。具体分析如下:

strtr(string,from,to)或者strtr(string,array)

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

复制代码 代码如下:

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


得到的结果是:
1 I lOve yOu
这个结果提醒我们,1.strtr它是区分大小写的,2.strtr的替换是很特殊的,你注意看后面那个yOu,中间的O被替换的,这显然不是我们的本意,再举一个特殊例子,说明这个php sttr函数的怪异,代码如下:

复制代码 代码如下:

echo strtr("I Love you","Love","");
?>


结果是:
I Love you
什么也不会改变,所以strtr需要注意的是:不能被替换为空,也就是末位那个参数不能是空字符串,当然空格是可以的,再次举例strtr函数的另一种情况,代码如下:

复制代码 代码如下:

echo strtr("I Loves you","Love","lOvEA");
?>


运行结果是
1 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 是行不通的,乱七八糟说了一通,其实关于strtr最想说的就是这个后面的用法了简单方便,貌似后面的用法也忽略掉了前后字符长度不同的问题,以上php strtr函数实验,PHP5.2 测试通过,代码如下:

复制代码 代码如下:

//这个时候输出的为baicai而不是bai123cai,因为str("pao") echo strtr("paocai!","pao","bai123");
?>


实例2:当被替换的值长度小于被替换目标的时候,以下为引用的内容,代码如下:

复制代码 代码如下:

//这个时候输出的为laocai而不是lacai,因为str("pao")>strlen("la")
echo strtr("paocai!","pao","la");
?>


实例3:支持数组替换,以下为引用的内容,代码如下:

复制代码 代码如下:

$Arr=array('ao'=>'oa','ai'=>'ia');
echo strtr("paocai!",$Arr); //这个时候输出的为poacia
?>


其次是str_replace,以下为引用的内容,代码如下:

复制代码 代码如下:

echo str_replace("you","paocai","I love you!"); //会输出I love paocai!
?>

希望本文所述对大家的PHP程序设计有所帮助。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn