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 相关文章推荐
PHP5 面向对象程序设计
Feb 13 PHP
PHP 面向对象 PHP5 中的常量
May 05 PHP
PHP字符编码问题之GB2312 VS UTF-8解决方法
Jun 23 PHP
php利用新浪接口查询ip获取地理位置示例
Jan 20 PHP
PHP轻量级数据库操作类Medoo增加、删除、修改、查询例子
Jul 04 PHP
php上传图片之时间戳命名(保存路径)
Aug 15 PHP
使用php方法curl抓取AJAX异步内容思路分析及代码分享
Aug 25 PHP
php通过array_shift()函数移除数组第一个元素的方法
Mar 18 PHP
thinkphp Apache配置重启Apache1 restart 出错解决办法
Feb 15 PHP
学习thinkphp5.0验证类使用方法
Nov 16 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
Feb 21 PHP
PHP设计模式(八)装饰器模式Decorator实例详解【结构型】
May 02 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
发布一个迷你php+AJAX聊天程序[聊天室]提供下载
2007/07/21 PHP
php pack与unpack 摸板字符字符含义
2009/10/29 PHP
php写的AES加密解密类分享
2014/06/20 PHP
详解WordPress开发中用于获取分类及子页面的函数用法
2016/01/08 PHP
PHP与服务器文件系统的简单交互
2016/10/21 PHP
JavaScript中:表达式和语句的区别[译]
2012/09/17 Javascript
js 模式窗口(模式对话框和非模式对话框)的使用介绍
2014/07/17 Javascript
浅谈javascript 函数属性和方法
2015/01/21 Javascript
ExtJS 4.2 Grid组件单元格合并的方法
2016/10/12 Javascript
JS封装通过className获取元素的函数示例
2016/12/20 Javascript
前端 Vue.js 和 MVVM 详细介绍
2016/12/29 Javascript
javaScript嗅探执行神器-sniffer.js
2017/02/14 Javascript
JS中将多个逗号替换为一个逗号的实现代码
2017/06/23 Javascript
微信小程序开发之map地图组件定位并手动修改位置偏差
2019/08/17 Javascript
node.JS事件机制与events事件模块的使用方法详解
2020/02/06 Javascript
vue中watch的用法汇总
2020/12/28 Vue.js
[40:06]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第一场
2018/04/04 DOTA
[05:24]TI9采访——教练
2019/08/24 DOTA
浅谈Python实现Apriori算法介绍
2017/12/20 Python
python opencv捕获摄像头并显示内容的实现
2019/07/11 Python
django创建超级用户过程解析
2019/09/18 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
2020/09/01 Python
Python之字典添加元素的几种方法
2020/09/30 Python
python SOCKET编程基础入门
2021/02/27 Python
澳洲CFL商城:CHEMIST FOR LESS(中文)
2021/02/28 全球购物
配件采购员岗位职责
2013/12/03 职场文书
大班幼儿评语大全
2014/04/30 职场文书
干部鉴定材料
2014/05/18 职场文书
525心理活动总结
2014/07/04 职场文书
领导班子自我剖析材料
2014/08/16 职场文书
学习普通话的体会
2014/11/07 职场文书
2014幼儿园大班工作总结
2014/11/10 职场文书
先进集体申报材料
2014/12/25 职场文书
公司市场部岗位职责
2015/04/15 职场文书
心灵捕手观后感
2015/06/02 职场文书
解决redis批量删除key值的问题
2022/03/23 Redis