查看此代码。
$bt = "abc8 • ";
echo $bt . "<P>";
$bt = rtrim($bt," • ");
echo $bt . "<P>";
$bt = "abc7 • ";
echo $bt . "<P>";
$bt = rtrim($bt," • ");
echo $bt . "<P>";
在运行PHP7.2的服务器上,此操作返回
abc8•
abc
abc7•
abc7
为什么第一对中会掉掉“ 8”?
如果我在代码中使用实际的项目符号,而不是8226实体,那么它将正常工作。
答案 0 :(得分:3)
您误解了rtrim()
的目的。来自the documentation:
还可以通过character_mask参数指定要删除的字符。只需列出您要删除的所有字符。
正则表达式或简单的str_replace()
就是您想要的。
$bt = str_replace(" • ", "", $bt);
$bt = preg_replace("/\s*•\s*$/", "", $bt);