我从post表单接收数据并希望将其存储在MySQL中用于处理输入的代码行为:
$tekst = $_POST["tekst"];
$tekst = htmlentities($tekst, ENT_QUOTES, ENT_HTML5, "UTF-8");
当我运行这个时,我收到错误消息:警告:htmlentities():不支持字符集"ENT_HTML5",假设 iso-8859-1 在 savepage.php 在第 14 行索引.php?id=1&ret=1 1
如何克服警告?
您收到该错误是因为您使用了仅在 PHP5.4.0 中出现的标志ENT_HTML5
。
正如您可以从官方文档中确认的那样:
5.4.0 增加了常量ENT_SUBSTITUTE、ENT_DISALLOWED、ENT_HTML401、ENT_XML1、ENT_XHTML和ENT_HTML5。
如果您的唯一目标是克服该错误,那么您可以简单地不设置 htmlentities()
函数的标志。 让 PHP 默认处理它们。
我的意思是,改变这个:
$tekst = htmlentities($tekst, ENT_QUOTES, ENT_HTML5, "UTF-8");
自:
$tekst = htmlentities($tekst, "UTF-8");
另一种选择是设置将它们替换为 PHP5.3.0 支持的其他标志,例如:
ENT_COMPAT
: 默认。仅编码双引号ENT_IGNORE
:忽略无效编码,而不是让函数返回空字符串。应避免,因为它可能具有安全隐患。