str_replace不适用于字符:​​< ,>和"

时间:2014-10-21 08:38:46

标签: php string replace str-replace

我想要从字符串中删除以下字符并将其替换为空。我已经使用test替换它们,以便我可以测试它的工作情况。是的,脚本文件以UTF-8编码保存。

<>"'`

我使用了一个简单的str_replace但由于某些原因只删除了',所有其余的都保留了。

$title = str_replace('"',"test",$title);
$title = str_replace("'","test",$title); // this one works
$title = str_replace("<","test",$title);
$title = str_replace(">","test",$title);
$title = str_replace("`","test",$title);

有没有更好的方法可以删除这些字符?

编辑:尝试使用字符实体,但仍然无法工作:

$title = str_replace('"',"test",$title);
$title = str_replace("'","test",$title); // this one works
$title = str_replace("<","test",$title);
$title = str_replace(">","test",$title);
$title = str_replace("`","test",$title);
$title = str_replace(html_entity_decode('&gt;', ENT_COMPAT, 'UTF-8'), '', $title);
$title = str_replace(html_entity_decode('&lt;', ENT_COMPAT, 'UTF-8'), '', $title);
$title = str_replace(html_entity_decode('&quot;', ENT_COMPAT, 'UTF-8'), '', $title);
$title = str_replace(html_entity_decode('&grave;', ENT_COMPAT, 'UTF-8'), '', $title);

1 个答案:

答案 0 :(得分:0)

我最后使用preg_replace来修复此问题:

echo preg_replace("~'|<|>|:~", "",$title);

然而,不要在此帖子var上使用htmlspecialchars或者它不会捕获<>