今天用rtrim()函数时遇到了一个奇怪的问题:
代码如下 | 复制代码 |
echortrim(' ','');// 输出为 echoltrim('www.jb51.net','www.');// 输出为 jb51.net |
以上的输出结果有点出人意料,本来我想第一行应该输出
,第二行会输出jb51.net。
这个问题纠结了我好久,一直没有找到原因,后来在手册中找到了答案:
rtrim()是以字符为单位替换,而不是以字符串的。从右往左替换时
如果这样理解的话,第二行的输出结果就是在意料之中了。呵呵……手册中已经写的清清楚楚了。原文:
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。
由此可见,rtrim、ltrim与trim第二个参数是作为一组字符列表进行匹配操作的。这与我们以往认识的str_replace函数的替换操作不一样。