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类
Jul 15 PHP
PHP Pear 安装及使用
Mar 19 PHP
PHP form 表单传参明细研究
Jul 17 PHP
用sql命令修改数据表中的一个字段为非空(not null)的语句
Jun 04 PHP
php使用pack处理二进制文件的方法
Jul 03 PHP
yii操作cookie实例简介
Jul 09 PHP
ThinkPHP中自定义错误页面和提示页面实例
Nov 22 PHP
微信公众平台接口开发入门示例
Dec 24 PHP
PHP中把错误日志保存在系统日志中(Windows系统)
Jun 23 PHP
php实现可逆加密的方法
Aug 11 PHP
详解PHP的Yii框架中扩展的安装与使用
Apr 01 PHP
thinkPHP5.0框架开发规范简介
Mar 25 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
各种战术和打法的原创者
2020/03/04 星际争霸
模拟xcopy的函数
2006/10/09 PHP
php接口和抽象类使用示例详解
2014/03/02 PHP
CodeIgniter CLI模式简介
2014/06/17 PHP
php发送与接收流文件的方法
2015/02/11 PHP
php数字运算验证码的实现代码
2015/07/30 PHP
PHP foreach遍历多维数组实现方式
2016/11/16 PHP
给Javascript数组插入一条记录的代码
2007/08/30 Javascript
自己动手制作jquery插件之自动添加删除行的实现
2011/10/13 Javascript
js获取单选框或复选框值及操作
2012/12/18 Javascript
jquery选择器的选择使用及性能介绍
2013/01/16 Javascript
jQuery获取DOM节点实例分析(2种方式)
2015/12/15 Javascript
js仿微博实现统计字符和本地存储功能
2015/12/22 Javascript
JS实现字符串去重及数组去重的方法示例
2018/04/21 Javascript
深入浅析var,let,const的异同点
2018/08/07 Javascript
JS动画实现回调地狱promise的实例代码详解
2018/11/08 Javascript
JavaScript使用类似break机制中断forEach循环的方法
2018/11/13 Javascript
nodejs检测因特网是否断开的解决方案
2019/04/17 NodeJs
JavaScript经典案例之简易计算器
2020/08/24 Javascript
typescript编写微信小程序创建项目的方法
2021/01/29 Javascript
详解Python编程中time模块的使用
2015/11/20 Python
探究python中open函数的使用
2016/03/01 Python
详解Django的CSRF认证实现
2018/10/09 Python
使用python编写一个语音朗读闹钟功能的示例代码
2020/07/14 Python
解决selenium+Headless Chrome实现不弹出浏览器自动化登录的问题
2021/01/09 Python
基于 HTML5 WebGL 实现的垃圾分类系统
2019/10/08 HTML / CSS
HTML5 Canvas旋转动画的2个代码例子(一个旋转的太极图效果)
2014/04/10 HTML / CSS
英国在线电子和小工具商店:TecoBuy
2018/10/06 全球购物
几道Java和数据库的面试题
2013/05/30 面试题
会计系个人求职信范文分享
2013/12/20 职场文书
数控个人求职信范文
2014/02/03 职场文书
安康杯竞赛活动总结
2014/05/05 职场文书
校运会口号
2014/06/18 职场文书
刑事附带民事代理词
2015/05/25 职场文书
Python机器学习之基础概述
2021/05/19 Python
CSS实现隐藏搜索框功能(动画正反向序列)
2021/07/21 HTML / CSS