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 相关文章推荐
用cookies来跟踪识别用户
Oct 09 PHP
smarty实例教程
Nov 19 PHP
PHP入门学习的几个不错的实例代码
Jul 13 PHP
php mysql Errcode: 28 终极解决方法
Jul 01 PHP
php入门学习知识点七 PHP函数的基本应用
Jul 14 PHP
php数组中删除元素的实现代码
Jun 22 PHP
PHP多线程批量采集下载美女图片的实现代码(续)
Jun 03 PHP
PHP变量内存分配问题记录整理
Nov 27 PHP
php+mysql数据库实现无限分类的方法
Dec 12 PHP
php上传文件问题汇总
Jan 30 PHP
基于php流程控制语句和循环控制语句(讲解)
Oct 23 PHP
Thinkphp 框架扩展之应用模式实现方法分析
Apr 27 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极大的增强功能和性能
2006/10/09 PHP
简单介绍PHP的责任链编程模式
2015/08/11 PHP
PHP定时执行任务的3种方法详解
2015/12/21 PHP
javascript同步Import,同步调用外部js的方法
2008/07/08 Javascript
javascript 简单抽屉效果的实现代码
2010/03/09 Javascript
网页图片延时加载的js代码
2010/04/22 Javascript
js数组操作学习总结
2013/11/04 Javascript
通过jquery 获取URL参数并进行转码
2014/08/18 Javascript
jQuery实现数秒后自动提交form的方法
2015/03/05 Javascript
jQuery Uploadify 上传插件出现Http Error 302 错误的解决办法
2015/12/12 Javascript
JavaScript从数组的indexOf()深入之Object的Property机制
2016/05/11 Javascript
基于touch.js手势库+zepto.js插件开发图片查看器(滑动、缩放、双击缩放)
2016/11/17 Javascript
Angular表格神器ui-grid应用详解
2017/09/29 Javascript
在vue中使用css modules替代scroped的方法
2018/03/10 Javascript
webpack 样式加载的实现原理
2018/06/12 Javascript
详解webpack4升级指南以及从webpack3.x迁移
2018/06/12 Javascript
vue-router中的hash和history两种模式的区别
2018/07/17 Javascript
Vue filter格式化时间戳时间成标准日期格式的方法
2018/09/16 Javascript
vuedraggable+element ui实现页面控件拖拽排序效果
2020/07/29 Javascript
微信小程序使用车牌号输入法的示例代码
2019/08/20 Javascript
Angular8 Http拦截器简单使用教程
2019/08/20 Javascript
Vue中使用better-scroll实现轮播图组件
2020/03/07 Javascript
对python以16进制打印字节数组的方法详解
2019/01/24 Python
使用Django开发简单接口实现文章增删改查
2019/05/09 Python
Pytorch mask_select 函数的用法详解
2020/02/18 Python
Python 找出出现次数超过数组长度一半的元素实例
2020/05/11 Python
基于Python中random.sample()的替代方案
2020/05/23 Python
HTML5中meta属性的使用方法
2016/02/29 HTML / CSS
优秀实习自我鉴定
2013/12/04 职场文书
大学生学习党课思想汇报
2014/01/03 职场文书
雷锋之歌观后感
2015/06/10 职场文书
热爱劳动主题班会
2015/08/14 职场文书
2016毕业实习单位评语大全
2015/12/01 职场文书
浅谈python中的多态
2021/06/15 Python
关于python中readlines函数的参数hint的相关知识总结
2021/06/24 Python
vue实现书本翻页动画效果实例详解
2022/04/08 Vue.js