html 个实体未正确显示

html entities not displaying properly

我为我的网站制作了一个转换特殊字符的功能,以防有人试图使用冒号、分号、单引号或双引号来破坏系统。我制作了一个 find 数组,它是 str_replace 中的 find 变量,而 change 将被交换。

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

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

它从字面上打印了 " 之类的代码,并且应该将其回显为双引号 (")。我刷新了页面。它仍在回显实际代码。

有什么帮助吗?

您的代码有效,但您必须注意字符串中的 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=