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中serialize序列化与json性能测试的示例分析
Apr 27 PHP
php连接与操作PostgreSQL数据库的方法
Dec 25 PHP
WordPress的主题编写中获取头部模板和底部模板
Dec 28 PHP
高质量PHP代码的50个实用技巧必备(下)
Jan 22 PHP
PHP开发中常用的十个代码样例
Feb 02 PHP
Symfony生成二维码的方法
Feb 04 PHP
php用户登录之cookie信息安全分析
May 13 PHP
PHP命名空间namespace用法实例分析
Sep 27 PHP
PHP实现字符串大小写转函数的功能实例
Feb 06 PHP
CentOS7编译安装php7.1的教程详解
Apr 18 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
Dec 20 PHP
Vagrant(WSL)+PHPStorm+Xdebu 断点调试环境搭建
Dec 13 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
《超神学院》霸气归来, 天使彦上演维多利亚的秘密
2020/03/02 国漫
第十三节--对象串行化
2006/11/16 PHP
Optimizer与Debugger兼容性问题的解决方法
2008/12/01 PHP
帝国CMS留言板回复后发送EMAIL通知客户
2015/07/06 PHP
Zend Framework教程之路由功能Zend_Controller_Router详解
2016/03/07 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
javascript动态加载三
2012/08/22 Javascript
js里取容器大小、定位、距离等属性搜集整理
2013/08/19 Javascript
一个简单的jQuery插件ajaxfileupload.js实现ajax上传文件例子
2014/06/26 Javascript
jQuery解析XML文件同时动态增加js文件的方法
2015/06/01 Javascript
jQuery实现仿QQ头像闪烁效果的文字闪动提示代码
2015/11/03 Javascript
谈一谈javascript中继承的多种方式
2016/02/19 Javascript
基于javascript实现动态时钟效果
2020/08/18 Javascript
jQuery Masonry瀑布流插件使用方法详解
2017/01/18 Javascript
vue实现手机号码抽奖上下滚动动画示例
2017/10/18 Javascript
解决 viewer.js 动态更新图片导致无法预览的问题
2019/05/14 Javascript
微信公众号平台接口开发 菜单管理的实现
2019/08/14 Javascript
vue element 生成无线级左侧菜单的实现代码
2019/08/21 Javascript
vue实现随机验证码功能(完整代码)
2019/12/10 Javascript
微信小程序调用wx.getImageInfo遇到的坑解决
2020/05/31 Javascript
[35:43]2018DOTA2亚洲邀请赛 4.1 小组赛B组 paiN vs Effect
2018/04/03 DOTA
python打开网页和暂停实例
2014/09/30 Python
shelve  用来持久化任意的Python对象实例代码
2016/10/12 Python
Python算法之求n个节点不同二叉树个数
2017/10/27 Python
python2.7实现FTP文件下载功能
2018/04/15 Python
Python实现网站表单提交和模板
2019/01/15 Python
python 格式化输出百分号的方法
2019/01/20 Python
Django Rest framework三种分页方式详解
2019/07/26 Python
python 解决flask 图片在线浏览或者直接下载的问题
2020/01/09 Python
Python sklearn库实现PCA教程(以鸢尾花分类为例)
2020/02/24 Python
Python 调用有道翻译接口实现翻译
2020/03/02 Python
python中用ggplot绘制画图实例讲解
2021/01/26 Python
Pytorch - TORCH.NN.INIT 参数初始化的操作
2021/02/27 Python
伦敦最受欢迎的蛋糕店:Konditor & Cook
2019/11/01 全球购物
初一家长会邀请函
2014/01/31 职场文书
2016元旦晚会主持词
2015/07/01 职场文书