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;mysql(二)
Oct 09 PHP
如何开发一个虚拟域名系统
Oct 09 PHP
PHP实现把MySQL数据库导出为.sql文件实例(仿PHPMyadmin导出功能)
May 10 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(二)
Jun 23 PHP
php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总
Apr 03 PHP
PHP数组与对象之间使用递归实现转换的方法
Jun 24 PHP
PHP和C#可共用的可逆加密算法详解
Oct 26 PHP
php代码架构的八点注意事项
Jan 25 PHP
CI框架无限级分类+递归的实现代码
Nov 01 PHP
php字符集转换
Jan 23 PHP
PHP后端银联支付及退款实例代码
Jun 23 PHP
PHP数组内存利用率低和弱类型详细解读
Aug 10 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
批量修改RAR文件注释的php代码
2010/11/20 PHP
ThinkPHP页面跳转success与error方法概述
2014/06/25 PHP
php 反斜杠处理函数addslashes()和stripslashes()实例详解
2016/12/25 PHP
PHP中让json_encode不自动转义斜杠“/”的方法
2017/02/28 PHP
MAC下通过改apache配置文件切换php多版本的方法
2017/04/26 PHP
jQuery 表单验证扩展(四)
2010/10/20 Javascript
输入框的字数时时统计—关于 onpropertychange 和 oninput 使用
2011/10/21 Javascript
JS 跳转页面延迟2种方法
2013/03/29 Javascript
Javascript alert消息换行的方法
2013/08/07 Javascript
JavaScript中使用指数方法Math.exp()的简介
2015/06/15 Javascript
javascript学习笔记之函数定义
2015/06/25 Javascript
AngularJS ng-bind-template 指令详解
2016/07/30 Javascript
jQuery实现的省市县三级联动菜单效果完整实例
2016/08/01 Javascript
关于angularJs指令的Scope(作用域)介绍
2016/10/25 Javascript
基于JavaScript实现图片连播和联级菜单实例代码
2017/07/28 Javascript
JS实现图片居中悬浮效果
2017/12/25 Javascript
express+mockjs实现模拟后台数据发送功能
2018/01/07 Javascript
详解jQuery中的getAll()和cleanData()
2019/04/15 jQuery
vue3.0 上手体验
2020/09/21 Javascript
JS实现百度搜索框
2021/02/25 Javascript
[40:31]Secret vs Alliacne 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python中使用asyncio 封装文件读写
2016/09/11 Python
Python切换pip安装源的方法详解
2016/11/18 Python
django 2.0更新的10条注意事项总结
2018/01/05 Python
使用anaconda的pip安装第三方python包的操作步骤
2018/06/11 Python
详解numpy.meshgrid()方法使用
2019/08/01 Python
python归并排序算法过程实例讲解
2020/11/04 Python
利用CSS3实现平移动画效果示例代码
2016/10/12 HTML / CSS
canvas烟花特效锦集
2018/01/17 HTML / CSS
html5声频audio和视频video等新特性详细说明
2012/12/26 HTML / CSS
2019史上最全Database工程师题库
2015/12/06 面试题
汽车机修工岗位职责
2014/03/06 职场文书
国家机关领导干部民主生活会对照检查材料思想汇报
2014/09/17 职场文书
机关作风整顿个人整改措施思想汇报
2014/09/29 职场文书
2015年初一班主任工作总结
2015/05/13 职场文书
Mysql systemctl start mysqld报错的问题解决
2021/06/03 MySQL