Notice: Use of undefined constant ENT_HTML5 - assumed 'ENT_HTML5'

Viewed 12154

I am trying to create a simple method which accepts the parameters for htmlspecialchars. Although I am getting PHP notice:

Use of undefined constant ENT_HTML5 - assumed 'ENT_HTML5'

  1. Any ideas what could be causing this?

/**

 * 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. If I change: ENT_QUOTES | ENT_HTML5 into: ENT_QUOTES, I get a different error

Warning: htmlspecialchars() expects parameter 2 to be long, string given

UPDATE

I am using PHP 5.3 so this is the reason for the HTML5 error. If I change ENT_QUOTES | ENT_HTML5 to ENT_COMPAT | ENT_HTML401 I get the same sort of error:

Notice: Use of undefined constant ENT_HTML401 - assumed 'ENT_HTML401'

1 Answers
Related