我正在尝试创建一个简单的方法,它接受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改为:ENT_QUOTES,则会得到另一个错误警告: htmlspecialchars()希望参数2是长的,字符串给定
更新
我使用的是PHP5.3,所以这就是HTML5错误的原因。如果我将ENT_QUOTES | ENT_HTML5更改为ENT_COMPAT | ENT_HTML401,则会得到相同的错误:
注意:使用未定义的常量ENT_HTML401 -假定为“ENT_HTML401”
发布于 2012-07-17 13:15:16
PHPVersion5.4 ENT_HTML5中添加了ENT_HTML5、ENT_HTML401和其他一些内容。对于早期版本,这些常量是未定义的,PHP将自动假定未定义的常量正在编程“滑行”,并将它们转换为字符串。
https://stackoverflow.com/questions/11523282
复制相似问题