Joh*_*lia 12 php htmlspecialchars
我正在尝试创建一个接受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;
}
Run Code Online (Sandbox Code Playgroud)
ENT_QUOTES | ENT_HTML5进入:ENT_QUOTES,我会得到一个不同的错误警告:htmlspecialchars()期望参数2为long,给定字符串
UPDATE
我使用的是PHP 5.3,这就是HTML5错误的原因.如果我ENT_QUOTES | ENT_HTML5改为ENT_COMPAT | ENT_HTML401I ,我会得到同样的错误:
注意:使用未定义的常量ENT_HTML401 - 假设为'ENT_HTML401'