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

yipeiwu_com6年前PHP代码库

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

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

echo rtrim('<p></div>', '</div>'); // 输出为 <p
echo ltrim('www.jb51.net','www.'); // 输出为 jb51.net

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

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

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字符串(string)用法总结》、《php常用函数与技巧总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《PHP数组(Array)操作技巧大全》及《php常见数据库操作技巧汇总

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

相关文章

php session_start()关于Cannot send session cache limiter - headers already sent错误解决方法

说是已经有输出,用编辑器打,前面明明什么都没有,原来在使用AJAX的 时候,也出现过这种情况,后来,把这个PHP文件放到linux中打开,会发现,在文件的最前面,会出现“锘 ”这样的一个...

Php中文件下载功能实现超详细流程分析

Php中文件下载功能实现超详细流程分析

客户端从服务端下载文件的流程分析: 浏览器发送一个请求,请求访问服务器中的某个网页(如:down.php),该网页的代码如下。 服务器接受到该请求以后,马上运行该down.php文件 运...

使用 eAccelerator加速PHP代码的目的

使用 eAccelerator加速PHP代码  eAccelerator 真是一个好东西(它的前身是truck-mmcache)。  简单来讲它是...

PHP进阶学习之命名空间基本用法分析

PHP进阶学习之命名空间基本用法分析

本文实例讲述了PHP进阶学习之命名空间基本用法。分享给大家供大家参考,具体如下: 前言 命名空间(namespace),在编程语言中,是对作用域的一种特殊的抽象.它表示着一个标识符的可见...

PHP实现多个关键词搜索查询功能示例

本文实例讲述了PHP实现多个关键词搜索查询功能。分享给大家供大家参考,具体如下: PHP对于数据库的搜索主要通过使用SQL语句中的like子句来实现。如果同时搜索多个关键词,可以使用un...