我想要从字符串中删除以下字符并将其替换为空。我已经使用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('>', ENT_COMPAT, 'UTF-8'), '', $title);
$title = str_replace(html_entity_decode('<', ENT_COMPAT, 'UTF-8'), '', $title);
$title = str_replace(html_entity_decode('"', ENT_COMPAT, 'UTF-8'), '', $title);
$title = str_replace(html_entity_decode('`', ENT_COMPAT, 'UTF-8'), '', $title);
答案 0 :(得分:0)
我最后使用preg_replace
来修复此问题:
echo preg_replace("~'|<|>|:~", "",$title);
然而,不要在此帖子var上使用htmlspecialchars或者它不会捕获<
和>