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 相关文章推荐
PHP 基本语法格式
Dec 15 PHP
PHP通过正则表达式下载图片到本地的实现代码
Sep 19 PHP
基于AppServ,XAMPP,WAMP配置php.ini去掉警告信息(NOTICE)的方法详解
May 07 PHP
php实现文件下载(支持中文文名)
Dec 04 PHP
一个经典的PHP文件上传类分享
Nov 18 PHP
php解析http获取的json字符串变量总是空白null
Mar 02 PHP
php准确获取文件MIME类型的方法
Jun 17 PHP
如何用PHP来实现一个动态Web服务器
Jul 29 PHP
PHP实现上传图片到数据库并显示输出的方法
May 31 PHP
php微信开发之音乐回复功能
Jun 14 PHP
php 实现简单的登录功能示例【基于thinkPHP框架】
Dec 02 PHP
用php如何解决大文件分片上传问题
Jul 07 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
FCKeditor添加自定义按钮
2008/03/27 PHP
php 将字符串按大写字母分隔成字符串数组
2010/04/30 PHP
php函数的常用方法及注意之处小结
2011/07/10 PHP
获取php页面执行时间,数据库读写次数,函数调用次数等(THINKphp)
2013/06/03 PHP
PHP实现操作redis的封装类完整实例
2015/11/14 PHP
thinkPHP5使用Rabc实现权限管理
2019/08/28 PHP
jQuery EasyUI API 中文文档 - Draggable 可拖拽
2011/09/29 Javascript
按Enter键触发事件的jquery方法实现代码
2014/02/17 Javascript
可恶的ie8提示缺少id未定义
2014/03/20 Javascript
js去除输入框中所有的空格和禁止输入空格的方法
2014/06/09 Javascript
jQuery修改li下的样式以及li下的img的src的值的方法
2014/11/02 Javascript
window.onload使用指南
2015/09/13 Javascript
学习jQuey中的return false
2015/12/18 Javascript
JavaScript jquery及AJAX小结
2016/01/24 Javascript
javascript断点调试心得分享
2016/04/23 Javascript
Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗
2016/06/30 Javascript
Vue2.0基于vue-cli+webpack Vuex的用法(实例讲解)
2017/09/15 Javascript
React Native验证码倒计时工具类分享
2017/10/24 Javascript
对Angular中单向数据流的深入理解
2018/03/31 Javascript
vue计算属性+vue中class与style绑定(推荐)
2020/03/30 Javascript
vue-router重写push方法,解决相同路径跳转报错问题
2020/08/07 Javascript
Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
2020/11/18 Vue.js
Python中几种导入模块的方式总结
2017/04/27 Python
Django 导出 Excel 代码的实例详解
2017/08/11 Python
Python实现霍夫圆和椭圆变换代码详解
2018/01/12 Python
Python闭包思想与用法浅析
2018/12/27 Python
详解Python3序列赋值、序列解包
2019/05/14 Python
Python创建或生成列表的操作方法
2019/06/19 Python
用Python从0开始实现一个中文拼音输入法的思路详解
2019/07/20 Python
pytorch 实现删除tensor中的指定行列
2020/01/13 Python
python中@property的作用和getter setter的解释
2020/12/22 Python
大学生创业计划书的用途
2014/01/08 职场文书
2015年社区创卫工作总结
2015/04/21 职场文书
2019中秋节祝福语大全,提前收藏啦
2019/09/10 职场文书
导游词之桂林山水
2019/09/20 职场文书
Ruby处理YAML和json数据
2022/04/18 Ruby