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 相关文章推荐
php 引用(&amp;)详解
Nov 20 PHP
PHP备份数据库生成SQL文件并下载的函数代码
Feb 05 PHP
php函数array_merge用法一例(合并同类数组)
Feb 03 PHP
PHP中获取时间的下一周下个月的方法
Mar 18 PHP
PHP中加密解密函数与DES加密解密实例
Oct 17 PHP
PHP利用header跳转失效的解决方法
Oct 24 PHP
ci检测是ajax还是页面post提交数据的方法
Nov 10 PHP
PHP基于MySQL数据库实现对象持久层的方法
Jun 17 PHP
微信公众号判断用户是否已关注php代码解析
Jun 24 PHP
PHP生成唯一ID之SnowFlake算法
Dec 17 PHP
PHP自动补全表单的两种方法
Mar 06 PHP
TP框架实现上传一张图片和批量上传图片的方法分析
Apr 23 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
PHP如何透过ODBC来存取数据库
2006/10/09 PHP
解析PHP中ob_start()函数的用法
2013/06/24 PHP
Yii框架实现图片上传的方法详解
2017/05/20 PHP
javascript SpiderMonkey中的函数序列化如何进行
2012/12/05 Javascript
一个简单的jQuery插件ajaxfileupload.js实现ajax上传文件例子
2014/06/26 Javascript
jQuery获取节点和子节点文本的方法
2014/07/22 Javascript
JavaScript的作用域和块级作用域概念理解
2014/09/21 Javascript
jquery实现鼠标经过显示下划线的渐变下拉菜单效果代码
2015/08/24 Javascript
基于JavaScript实现移动端点击图片查看大图点击大图隐藏
2015/11/04 Javascript
初识angular框架后的所思所想
2016/02/19 Javascript
基于AngularJS实现表单验证功能
2017/07/28 Javascript
JavaScript中一些特殊的字符运算
2017/08/17 Javascript
小程序多图列表实现性能优化的方法步骤
2019/05/28 Javascript
Node.js控制台彩色输出的方法与原理实例详解
2019/12/01 Javascript
viewer.js一个强大的基于jQuery的图像查看插件(支持旋转、缩放)
2020/04/01 jQuery
基于JQuery实现页面定时弹出广告
2020/05/08 jQuery
详细分析Node.js 模块系统
2020/06/28 Javascript
[01:25:09]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第二场
2014/05/24 DOTA
[44:58]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第二场
2018/04/06 DOTA
Python守护进程(daemon)代码实例
2015/03/06 Python
在Python中使用Neo4j数据库的教程
2015/04/16 Python
Python中的数据对象持久化存储模块pickle的使用示例
2016/03/03 Python
Python使用PDFMiner解析PDF代码实例
2017/03/27 Python
numpy排序与集合运算用法示例
2017/12/15 Python
python实现的读取网页并分词功能示例
2019/10/29 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
2020/01/19 Python
Python 日期时间datetime 加一天,减一天,加减一小时一分钟,加减一年
2020/04/16 Python
CSS3感应鼠标的背景闪烁和图片缩放动画效果
2014/05/14 HTML / CSS
利用简洁的图片预加载组件提升html5移动页面的用户体验
2016/03/11 HTML / CSS
HTML5中新标签和常用标签详解
2014/03/07 HTML / CSS
VICHY薇姿美国官方网站:欧洲药房第一的抗衰老品牌
2017/11/22 全球购物
网络工程师的自我评价
2013/10/02 职场文书
入党综合考察材料
2014/06/02 职场文书
班主任与学生安全责任书
2014/07/25 职场文书
中班下学期个人总结
2015/02/12 职场文书
入门学习Go的基本语法
2021/07/07 Golang