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中常用编辑器推荐
Jan 02 PHP
PHP 实现多服务器共享 SESSION 数据
Aug 15 PHP
php的urlencode()URL编码函数浅析
Aug 09 PHP
PHP+Mysql日期时间如何转换(UNIX时间戳和格式化日期)
Jul 15 PHP
php MessagePack介绍
Oct 06 PHP
destoon调用企业会员公司形象图片的实现方法
Aug 21 PHP
php post大量数据时发现数据丢失问题解决方法
Jun 20 PHP
Symfony2学习笔记之插件格式分析
Mar 17 PHP
详解PHP防止直接访问.php 文件的实现方法
Jul 28 PHP
php设计模式之策略模式应用案例详解
Jun 17 PHP
php传值和传引用的区别点总结
Nov 19 PHP
php生成短网址/短链接原理和用法实例分析
May 29 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实现从远程下载文件的方法
2015/03/12 PHP
PHP生成和获取XML格式数据的方法
2016/03/04 PHP
php实现多维数组排序的方法示例
2017/03/23 PHP
如何用javascript判断录入的日期是否合法
2007/01/08 Javascript
用 JSON 处理缓存
2007/04/27 Javascript
js 纯数字不重复排列的另类方法
2010/07/17 Javascript
JavaScript入门之基本函数详解
2011/10/21 Javascript
js确认删除对话框效果的示例代码
2014/02/20 Javascript
jquery解析xml字符串示例分享
2014/03/25 Javascript
js事件监听机制(事件捕获)总结
2014/08/08 Javascript
检测一个函数是否是JavaScript原生函数的小技巧
2015/03/13 Javascript
javascript实现简单的分页特效
2015/08/12 Javascript
如何用jQuery实现ASP.NET GridView折叠伸展效果
2015/09/26 Javascript
Javascript循环删除数组中元素的几种方法示例
2017/05/18 Javascript
基于vue2框架的机器人自动回复mini-project实例代码
2017/06/13 Javascript
Vue手把手教你撸一个 beforeEnter 钩子函数
2018/04/24 Javascript
JS实现根据详细地址获取经纬度功能示例
2019/04/16 Javascript
Vue使用localStorage存储数据的方法
2019/05/27 Javascript
零基础写python爬虫之爬虫框架Scrapy安装配置
2014/11/06 Python
Python使用smtp和pop简单收发邮件完整实例
2018/01/09 Python
解决安装tensorflow遇到无法卸载numpy 1.8.0rc1的问题
2018/06/13 Python
Python控制键盘鼠标pynput的详细用法
2019/01/28 Python
基于python生成器封装的协程类
2019/03/20 Python
pytorch实现用Resnet提取特征并保存为txt文件的方法
2019/08/20 Python
python 画图 图例自由定义方式
2020/04/17 Python
Python如何将函数值赋给变量
2020/04/28 Python
Python实现迪杰斯特拉算法过程解析
2020/09/18 Python
如何使用scrapy中的ItemLoader提取数据
2020/09/30 Python
EJB的激活机制
2013/10/25 面试题
服务中心夜班服务员岗位职责
2013/11/27 职场文书
辩论赛主持词
2014/03/18 职场文书
仓库管理员岗位职责
2014/03/19 职场文书
股东协议书
2014/04/14 职场文书
学风建设演讲稿
2014/09/12 职场文书
安全月宣传标语
2014/10/07 职场文书
2016年学校十一国庆节活动总结
2016/04/01 职场文书