PHP5.3 带有 ENT_HTML5 的 htmlentities 抛出错误消息

PHP5.3 htmlentities with ENT_HTML5 throws error message

我从 post 表单接收数据并希望将其存储在 MySQL 处理输入的代码行是:

$tekst = $_POST["tekst"];
$tekst = htmlentities($tekst, ENT_QUOTES, ENT_HTML5, "UTF-8");

当我运行它时,我收到错误消息: 警告:htmlentities():不支持字符集“ENT_HTML5”,假设第 14 行 savepage.php 中的 iso-8859-1 index.php?id=1&ret=1 1

如何克服警告?

您出现该错误是因为您使用了仅在 PHP5.4.0.

中出现的标志 ENT_HTML5

你可以从官方确认这一点documentation:

5.4.0 The constants ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_XML1, ENT_XHTML and ENT_HTML5 were added.

如果您的唯一目标是克服该错误,那么您可以简单地不设置 htmlentities() 函数的标志。让PHP默认对待他们。

我的意思是,改变这个:

$tekst = htmlentities($tekst, ENT_QUOTES, ENT_HTML5, "UTF-8");

收件人:

$tekst = htmlentities($tekst, "UTF-8");

另一个选项,是设置用PHP5.3.0支持的其他标志替换它们,例如:

  • ENT_COMPAT默认。只编码双引号

  • ENT_IGNORE : 忽略无效编码而不是使函数 return 为空字符串。应该避免,因为它可能有安全隐患。