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脚本数据库功能详解(上)
Oct 09 PHP
PHP setcookie() cannot modify header information 的解决方法
Jan 09 PHP
PHP容易被忽略而出错陷阱 数字与字符串比较
Nov 10 PHP
php sybase_fetch_array使用方法
Apr 15 PHP
Symfony页面的基本创建实例详解
Jan 26 PHP
php递归实现无限分类的方法
Jul 28 PHP
讲解WordPress中用于获取评论模板和搜索表单的PHP函数
Dec 28 PHP
php基于dom实现读取图书xml格式数据的方法
Feb 03 PHP
php实现socket推送技术的示例
Dec 20 PHP
PHP面向对象程序设计子类扩展父类(子类重新载入父类)操作详解
Jun 14 PHP
PHP 自动加载类原理与用法实例分析
Apr 14 PHP
tp5.1 框架数据库常见操作详解【添加、删除、更新、查询】
May 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
function.inc.php超越php
2006/12/09 PHP
php中将一段数据存到一个txt文件中并显示其内容
2014/08/15 PHP
基于jquery的实现简单的表格中增加或删除下一行
2010/08/01 Javascript
js的表单操作 简单计算器
2011/12/29 Javascript
HTML复选框和单选框 checkbox和radio事件介绍
2012/12/12 Javascript
js将字符串转成正则表达式的实现方法
2013/11/13 Javascript
javascript基本包装类型介绍
2015/04/10 Javascript
Bootstrap每天必学之表格
2015/11/23 Javascript
js ajaxfileupload.js上传报错的解决方法
2016/05/05 Javascript
JavaScript对象创建模式实例汇总
2016/10/03 Javascript
three.js实现围绕某物体旋转
2017/01/25 Javascript
原生JavaScript实现Tooltip浮动提示框特效
2017/03/07 Javascript
探讨Vue.js的组件和模板
2017/10/27 Javascript
Angular实现的日程表功能【可添加及隐藏显示内容】
2017/12/27 Javascript
基于vue中css预加载使用sass的配置方式详解
2018/03/13 Javascript
浅谈vuex的基本用法和mapaction传值问题
2019/11/08 Javascript
Python使用MD5加密字符串示例
2014/08/22 Python
python3实现TCP协议的简单服务器和客户端案例(分享)
2017/06/14 Python
Python实现多级目录压缩与解压文件的方法
2018/09/01 Python
对Python通过pypyodbc访问Access数据库的方法详解
2018/10/27 Python
Flask中endpoint的理解(小结)
2019/12/11 Python
TensorFlow——Checkpoint为模型添加检查点的实例
2020/01/21 Python
Python OpenCV实现测量图片物体宽度
2020/05/27 Python
python打开文件的方式有哪些
2020/06/29 Python
HTML5拖放API实现拖放排序的实例代码
2017/05/11 HTML / CSS
2014信息技术专业毕业生自我评价
2014/01/17 职场文书
讲座主持词
2014/03/20 职场文书
中学生运动会口号
2014/06/07 职场文书
国贸专业毕业求职信
2014/06/11 职场文书
三人合伙协议书范本
2014/10/29 职场文书
2014年度培训工作总结
2014/11/27 职场文书
荒岛余生观后感
2015/06/09 职场文书
会计入职心得体会
2016/01/22 职场文书
私人贷款担保书该怎么写呢?
2019/07/02 职场文书
选择比努力更重要?这是长期以来对“努力”的最大误解
2019/07/12 职场文书
JS 基本概念详细介绍
2021/10/16 Javascript