查看此代码。
$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 •
美国广播公司
ABC7 •
ABC7
为什么第一对中的"8"被丢弃???
如果我在代码中使用实际的项目符号,而不是 8226 实体,它可以正常工作。
你误解了rtrim()
的目的。从文档中:
您还可以通过 character_mask 参数指定要去除的字符。只需列出要删除的所有字符即可。
正则表达式或简单的str_replace()
将是您要查找的。
$bt = str_replace(" • ", "", $bt);
$bt = preg_replace("/s*•s*$/", "", $bt);