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


Posted in PHP onNovember 26, 2014

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

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

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

<?php 

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

?>

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

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

?>

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

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

?>

运行结果是
1 I lOvEs yOu
注意看第三个参数的A,在结果中并没有出现.

我不建议用strtr以少换多,既然这个strtr函数挺麻烦为什么还要用呢?原因是,它的速度很快,据说,strtr 比 str_replace 快四倍,所以能用strtr函数的时候一定要用,那怎么用才舒服?这就是它的第二种情况:strtr(string,array)

strtr符合意愿的使用方法,代码如下:

<?php 

$table_change = array('you'=>'her sister'); 

echo strtr("I Love you",$table_change); 

?>

结果为:
I Love her sister
小技巧:你想到替换什么你就往数组加什么,比如代码如下:
<?php 

$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 测试通过,代码如下:
<?php 

//这个时候输出的为baicai而不是bai123cai,因为str("pao")<strlen("bai123") 

echo strtr("paocai!","pao","bai123"); 

?>

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

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

echo strtr("paocai!","pao","la");

?>

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

$Arr=array('ao'=>'oa','ai'=>'ia');

echo strtr("paocai!",$Arr); //这个时候输出的为poacia

?>

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

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

?>

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

PHP 相关文章推荐
PHP4(windows版本)中的COM函数
Oct 09 PHP
修改Zend引擎实现PHP源码加密的原理及实践
Apr 14 PHP
PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数
Apr 09 PHP
获取PHP警告错误信息的解决方法
Jun 03 PHP
php 表单提交大量数据发生丢失的解决方法
Mar 03 PHP
php定界符
Jun 19 PHP
修改ThinkPHP缓存为Memcache的方法
Jun 25 PHP
PHP实现上传图片到 zimg 服务器
Oct 19 PHP
PHP输出图像imagegif、imagejpeg与imagepng函数用法分析
Nov 14 PHP
Laravel中获取路由参数Route Parameters的五种方法示例
Sep 29 PHP
php 将json格式数据转换成数组的方法
Aug 21 PHP
PHP解密支付宝小程序的加密数据、手机号的示例代码
Feb 26 PHP
thinkphp模板继承实例简述
Nov 26 #PHP
thinkphp中空模板与空模块的用法实例
Nov 26 #PHP
PHP中SimpleXML函数用法分析
Nov 26 #PHP
ThinkPHP模板输出display用法分析
Nov 26 #PHP
php中数字、字符与对象判断函数用法实例
Nov 26 #PHP
PHP中array_slice函数用法实例详解
Nov 25 #PHP
ThinkPHP框架设计及扩展详解
Nov 25 #PHP
You might like
探讨方法的重写(覆载)详解
2013/06/08 PHP
PHP使用GIFEncoder类处理gif图片实例
2014/07/01 PHP
Discuz7.2版的faq.php SQL注入漏洞分析
2014/08/06 PHP
php实现异步数据调用的方法
2015/12/24 PHP
Yii2实现ActiveForm ajax提交
2017/05/26 PHP
jQuery开发者都需要知道的5个小技巧
2010/01/08 Javascript
javascript采用数组实现tab菜单切换效果
2012/12/12 Javascript
JavaScript版的TwoQueues缓存模型
2014/12/29 Javascript
谈谈我对JavaScript DOM事件的理解
2015/12/18 Javascript
JavaScript判断微信浏览器实例代码
2016/06/13 Javascript
js字符串操作总结(必看篇)
2016/11/22 Javascript
js实现简单的选项卡效果
2017/02/23 Javascript
基于AngularJS实现表单验证功能
2017/07/28 Javascript
JavaScript中数组常见操作技巧
2017/09/01 Javascript
angular 实现的输入框数字千分位及保留几位小数点功能示例
2018/06/19 Javascript
NodeJs实现简单的爬虫功能案例分析
2018/12/05 NodeJs
vue登录页面cookie的使用及页面跳转代码
2019/07/10 Javascript
layer页面跳转,获取html子节点元素的值方法
2019/09/27 Javascript
Linux下用Python脚本监控目录变化代码分享
2015/05/21 Python
python将字典内容存入mysql实例代码
2018/01/18 Python
python pandas 对series和dataframe的重置索引reindex方法
2018/06/07 Python
Python学习笔记之抓取某只基金历史净值数据实战案例
2019/06/03 Python
使用Python画股票的K线图的方法步骤
2019/06/28 Python
django中media媒体路径设置的步骤
2019/11/15 Python
使用Python爬虫库requests发送请求、传递URL参数、定制headers
2020/01/25 Python
django中ImageField的使用详解
2020/12/21 Python
CSS3制作轮播图的一种方法
2019/11/11 HTML / CSS
医学生自我鉴定范文
2013/11/08 职场文书
说明书范文
2014/05/07 职场文书
信息管理与信息系统专业求职信
2014/06/21 职场文书
小学毕业典礼演讲稿
2014/09/09 职场文书
2015年乡镇流动人口工作总结
2015/05/12 职场文书
街道办残联2016年助残日活动总结
2016/04/01 职场文书
css 中多种边框的实现小窍门
2021/04/07 HTML / CSS
基于angular实现树形二级表格
2021/10/16 Javascript
【海涛解说】暗牧也疯狂,牛蛙成配角
2022/04/01 DOTA