我想修剪一个项目符号实体,但 8 也被修剪了.为什么?



查看此代码。

$bt = "abc8 • ";
echo $bt . "<P>";
$bt = rtrim($bt," &#8226; ");
echo $bt . "<P>";
$bt = "abc7 &#8226; ";
echo $bt . "<P>";
$bt = rtrim($bt," &#8226; ");
echo $bt . "<P>";

在我的服务器上,运行 PHP7.2,这将返回,

ABC8 •

美国广播公司

ABC7 •

ABC7

为什么第一对中的"8"被丢弃???

如果我在代码中使用实际的项目符号,而不是 8226 实体,它可以正常工作。

你误解了rtrim()的目的。从文档中:

您还可以通过 character_mask 参数指定要去除的字符。只需列出要删除的所有字符即可。

正则表达式或简单的str_replace()将是您要查找的。

$bt = str_replace(" &#8226; ", "", $bt);
$bt = preg_replace("/s*&#8226;s*$/", "", $bt);

最新更新