PHP函数rtrim()使用中的怪异现象分析


Posted in PHP onFebruary 24, 2017

本文实例讲述了PHP函数rtrim()使用中的怪异现象。分享给大家供大家参考,具体如下:

今天用rtrim()函数时遇到了一个奇怪的问题:

echo rtrim('<p></div>', '</div>'); // 输出为 <p
echo ltrim('3water.com','www.'); // 输出为 3water.com

以上的输出结果有点出人意料,本来我想第一行应该输出<p>,第二行会输出3water.com。

这个问题纠结了我好久,一直没有找到原因,后来在手册中找到了答案:

rtrim()是以字符为单位替换,而不是以字符串的。从右往左替换时</div>6个字符肯定会被替换掉的,再往左时遇到了>,因为>也包含在rtirm()的第二个参数的字符串(</div>)中,所以也被替换掉了,当再往左时遇到了p,这时p不包含在第二个参数的字符串中。所以替换停止,输出了<p。

如果这样理解的话,第二行的输出结果就是在意料之中了。呵呵……手册中已经写的清清楚楚了。原文:

You can also specify the characters you want to strip, by means of the charlist parameter. Simply list all characters that you want to be stripped. With .. you can specify a range of characters。

由此可见,rtrimltrimtrim第二个参数是作为一组字符列表进行匹配操作的。这与我们以往认识的str_replace函数的替换操作不一样。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
在PHP3中实现SESSION的功能(一)
Oct 09 PHP
php结合飞信 免费天气预报短信
May 07 PHP
PHP 程序员的调试技术小结
Nov 15 PHP
php木马webshell扫描器代码
Jan 25 PHP
PHP中运用jQuery的Ajax跨域调用实现代码
Feb 21 PHP
PHP 万年历实现代码
Oct 18 PHP
浅析php适配器模式(Adapter)
Nov 25 PHP
ThinkPHP实现动态包含文件的方法
Nov 29 PHP
[原创]PHP简单开启curl的方法(测试可行)
Jan 11 PHP
php安装扩展mysqli的实现步骤及报错解决办法
Sep 23 PHP
smarty模板的使用方法实例分析
Sep 18 PHP
通过实例解析PHP数据类型转换方法
Jul 11 PHP
CakePHP框架Session设置方法分析
Feb 23 #PHP
cakephp2.X多表联合查询join及使用分页查询的方法
Feb 23 #PHP
PHP获取中国时间(上海时区时间)及美国时间的方法
Feb 23 #PHP
php实现的XML操作(读取)封装类完整实例
Feb 23 #PHP
利用php生成验证码
Feb 23 #PHP
php实现base64图片上传方式实例代码
Feb 22 #PHP
php中实现字符串翻转的方法
Feb 22 #PHP
You might like
用Flash图形化数据(一)
2006/10/09 PHP
纯真IP数据库的应用 IP地址转化成十进制
2009/06/14 PHP
PHP扩展Memcache分布式部署方案
2015/12/06 PHP
[原创]PHP正则删除html代码中a标签并保留标签内容的方法
2017/05/23 PHP
js类 from qq
2006/11/13 Javascript
Extjs Ext.MessageBox.confirm 确认对话框详解
2010/04/02 Javascript
Javascript面向对象编程
2012/03/18 Javascript
JS实现的N多简单无缝滚动代码(包含图文效果)
2015/11/06 Javascript
React.js入门学习第一篇
2016/03/30 Javascript
JS获取鼠标选中的文字
2016/08/10 Javascript
浅谈Javascript中的12种DOM节点类型
2016/08/19 Javascript
jQuery插件echarts实现的循环生成图效果示例【附demo源码下载】
2017/03/04 Javascript
jQuery滚动插件scrollable.js用法分析
2017/05/25 jQuery
Angular4学习笔记之准备和环境搭建项目
2017/08/01 Javascript
详解express与koa中间件模式对比
2017/08/07 Javascript
浅谈Node.js 沙箱环境
2018/05/15 Javascript
javascript数据结构之多叉树经典操作示例【创建、添加、遍历、移除等】
2018/08/01 Javascript
react native 原生模块桥接的简单说明小结
2019/02/26 Javascript
[36:37]2014 DOTA2华西杯精英邀请赛5 24 VG VS iG
2014/05/25 DOTA
python实现异步回调机制代码分享
2014/01/10 Python
爬山算法简介和Python实现实例
2014/04/26 Python
python二分查找算法的递归实现方法
2016/05/12 Python
解决python opencv无法显示图片的问题
2018/10/28 Python
YSL Beauty加拿大官方商城:圣罗兰美妆加拿大
2017/05/15 全球购物
中科方德软件测试面试题
2016/04/21 面试题
大门门卫岗位职责
2013/11/30 职场文书
高中自我评价范文
2014/01/27 职场文书
函授自我鉴定范文
2014/02/06 职场文书
承诺书模板
2014/08/30 职场文书
遗失说明具结保证书
2015/02/26 职场文书
求职自我推荐信
2015/03/24 职场文书
pdf论文中python画的图Type 3 fonts字体不兼容的解决方案
2021/04/24 Python
解决Go gorm踩过的坑
2021/04/30 Golang
解析Java异步之call future
2021/06/14 Java/Android
PHP中多字节字符串操作实例详解
2021/08/23 PHP
vmware虚拟机打不开vmx文件怎么办 ?vmware虚拟机vmx文件打开方法
2022/04/08 数码科技