首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >注意:使用未定义的常量ENT_HTML5 -假定为“ENT_HTML5”

注意:使用未定义的常量ENT_HTML5 -假定为“ENT_HTML5”
EN

Stack Overflow用户
提问于 2012-07-17 13:13:11
回答 1查看 12.2K关注 0票数 12

我正在尝试创建一个简单的方法,它接受htmlspecialchars的参数。尽管我收到了PHP通知:

未定义常数ENT_HTML5的使用-假定为“ENT_HTML5”

  1. 有什么原因吗?

/**

代码语言:javascript
复制
 * 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;
}
  1. 如果我将:ENT_QUOTES | ENT_HTML5改为:ENT_QUOTES,则会得到另一个错误

警告: htmlspecialchars()希望参数2是长的,字符串给定

更新

我使用的是PHP5.3,所以这就是HTML5错误的原因。如果我将ENT_QUOTES | ENT_HTML5更改为ENT_COMPAT | ENT_HTML401,则会得到相同的错误:

注意:使用未定义的常量ENT_HTML401 -假定为“ENT_HTML401”

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-17 13:15:16

PHPVersion5.4 ENT_HTML5中添加了ENT_HTML5、ENT_HTML401和其他一些内容。对于早期版本,这些常量是未定义的,PHP将自动假定未定义的常量正在编程“滑行”,并将它们转换为字符串。

票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11523282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档