2012-07-17 2 views
12

htmlspecialchars에 대한 매개 변수를 허용하는 간단한 메서드를 만들려고합니다. 나는 PHP의 통지를 얻고 있지만 :알림 : 정의되지 않은 상수 ENT_HTML5 사용 - 'ENT_HTML5'로 추정

Use of undefined constant ENT_HTML5 - assumed 'ENT_HTML5'

  1. 이 원인이 될 수 무엇을 어떤 아이디어가?/**

    * 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, 나는 다른 오류를 얻을

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

UPDATE

PHP 5.3을 사용 중이므로 HTML5 오류가 발생합니다.

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

+0

어떤 PHP 버전을 사용하고 있습니까? ENT_HTML5는 PHP 5.4 이상입니다 ... –

답변

20

ENT_HTML5, ENT_HTML401을, 어떤 사람은 PHP 버전 5.4 according to the manual에 추가되었습니다 내가 ENT_COMPAT | ENT_HTML401ENT_QUOTES | ENT_HTML5을 변경하면 나는 오류의 동일한 종류를 얻을. 이전 버전의 경우 이러한 상수는 정의되지 않았으므로 PHP는 정의되지 않은 상수가 "전표"를 프로그래밍하고이를 문자열로 변환한다고 자동으로 가정합니다.