PHP函数rtrim()使用中的怪异现象分析
本文实例讲述了PHP函数rtrim()使用中的怪异现象。分享给大家供大家参考,具体如下:
今天用rtrim()函数时遇到了一个奇怪的问题:
echortrim('<p></div>','</div>');//输出为<p echoltrim('www.nhooo.com','www.');//输出为jb51.net
以上的输出结果有点出人意料,本来我想第一行应该输出<p>,第二行会输出jb51.net。
这个问题纠结了我好久,一直没有找到原因,后来在手册中找到了答案:
rtrim()是以字符为单位替换,而不是以字符串的。从右往左替换时</div>6个字符肯定会被替换掉的,再往左时遇到了>,因为>也包含在rtirm()的第二个参数的字符串(</div>)中,所以也被替换掉了,当再往左时遇到了p,这时p不包含在第二个参数的字符串中。所以替换停止,输出了<p。
如果这样理解的话,第二行的输出结果就是在意料之中了。呵呵……手册中已经写的清清楚楚了。原文:
Youcanalsospecifythecharactersyouwanttostrip,bymeansofthecharlistparameter.Simplylistallcharactersthatyouwanttobestripped.With..youcanspecifyarangeofcharacters。
由此可见,rtrim、ltrim与trim第二个参数是作为一组字符列表进行匹配操作的。这与我们以往认识的str_replace函数的替换操作不一样。
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php字符串(string)用法总结》、《php常用函数与技巧总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《PHP数组(Array)操作技巧大全》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。