html实体无法正常显示

时间:2015-08-19 10:29:14

标签: php html entities

我为我的网站制作了一个转换特殊字符的函数,以防有人试图使用冒号,分号,单引号或双引号来突破系统。我创建了一个find数组,它是str_replace中的find变量,并且会更改要交换的内容。

$find = array('"','\'','<3');
$change = array('&quot;','&apos;','&hearts;');
$str = "This is a test ' " <3.";

$str = str_replace($find, $change, $str);
echo $str;

它确实打印了像&amp; quot这样的代码,据说它应该以双引号(“)的形式回显。我刷新了页面。它仍在回显实际的代码。

任何帮助?

1 个答案:

答案 0 :(得分:2)

您的代码有效,但您必须注意字符串中的PHP引号:

$find = array('"','\'','<3');
$change = array('&quot;','&apos;','&hearts;');
$str = "This is a test ' \" <3.\""; // look at this line

$str = str_replace($find, $change, $str);
echo $str;

这很有效。看到它有效:http://phpfiddle.org/lite?code=