我正在尝试创建一个接受htmlspecialchars参数的简单方法.虽然我正在获得
PHP通知:
Use of undefined constant ENT_HTML5 – assumed ‘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['charset']); } return $mixed; }
>如果我更改:ENT_QUOTES | ENT_HTML5进入:ENT_QUOTES,我收到一个不同的错误
Warning: htmlspecialchars() expects parameter 2 to be long,string
given
UPDATE
我使用PHP 5.3,这是HTML5错误的原因.如果我更改ENT_QUOTES | ENT_HTML5到ENT_COMPAT | ENT_HTML401我得到同样的错误:
Notice: Use of undefined constant ENT_HTML401 – assumed ‘ENT_HTML401’
ENT_HTML5,ENT_HTML401和其他一些在PHP版本5.4
according to the manual中添加.对于早期版本,这些常量是未定义的,PHP将自动假定未定义的常量是编程“slips”并将其转换为字符串.
原文链接:https://www.f2er.com/php/139821.html