trim函数是删除格的但是在使用时我们一定要注意了,小编今天来为各位介绍trim函数在删除空间时的一些问题与bug了。
trim — 去除字符串首尾处的空白字符(或者其他字符)
用法:
string trim ( string $str [, string $charlist = ” \t\n\r\0\x0B” ] )
trim函数大家应该不会陌生,从4.1.0 新增可选的 charlist 参数。默认的用法就不多说了,说说在使用到第二个参数的情况:
$path = trim(dirname(__FILE__), ‘/’).’/’; // 保证$path只有一个/结束
这种用法也是没有问题的。那什么情况下会出问题?再举个例子:
$domain = trim(‘www.example.com.tw’, ‘www.’); // 大家期望的结果是example.com.tw,可实际的结果却是example.com.t,tw中的w没了。
问题出现在第二个参数$charlist,它代表的是一个字符列表,而不是一个单纯的字符串,所以tw的w属于www.这个列表中的一员,被一起去掉了。具体可以再参考trim
替代方法:
$domain = preg_replace(‘/^www\.|www\.$/’, ”, ‘www.example.com.tw’);