我正在尝试创建一个接受 htmlspecialchars 参数的简单方法。虽然我收到 PHP 通知:
使用未定义的常量 ENT_HTML5 - 假定为“ENT_HTML5”
- 有什么想法可能导致这种情况吗?
/**
* Encode string.
*
* @param array/string $value
* @param string $param
* @return string
*/
protected function escape($mixed, $params) {
$defaults = array('flags' => ENT_QUOTES | ENT_HTML5, 'charset' => 'UTF-8');
$params = array_merge($defaults, $params);
if (is_array($mixed)) {
foreach($mixed as $key => $value) {
$mixed[$key] = $this->escape($value, $params['flags'], $params['charset']);
}
} elseif (is_string($mixed)) {
$mixed = htmlspecialchars($mixed, $params['flags'], $params['charset']);
}
return $mixed;
}
- 如果我改变:
ENT_QUOTES | ENT_HTML5
into: ENT_QUOTES
,我得到一个不同的错误
警告:htmlspecialchars() 期望参数 2 为长字符串
给定
UPDATE
我使用的是 PHP 5.3,所以这就是 HTML5 错误的原因。如果我改变ENT_QUOTES | ENT_HTML5
to ENT_COMPAT | ENT_HTML401
我得到同样的错误:
注意:使用未定义的常量 ENT_HTML401 - 假定为“ENT_HTML401”
PHP 5.4 版本中添加了 ENT_HTML5、ENT_HTML401 和其他一些内容根据手册 http://php.net/manual/en/function.htmlspecialchars.php。对于早期版本,这些常量是未定义的,PHP 将自动假定未定义的常量是编程“错误”,并将它们转换为字符串。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)