2012-07-17 14 views
12

Htmlspecialchars için parametreleri kabul eden basit bir yöntem oluşturmaya çalışıyorum. PHP bildirimi alıyorum rağmen:Uyarı: Tanımsız sabitin kullanımı ENT_HTML5 - varsayılan 'ENT_HTML5'

Use of undefined constant ENT_HTML5 - assumed 'ENT_HTML5'

  1. bu sebep ne olabilir herhangi bir fikir?/**

    * 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. Şunu değiştirirsem

    : ENT_QUOTES | ENT_HTML5 içine: ENT_QUOTES, farklı bir hatayı olsun

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

GÜNCELLEME

PHP 5.3 kullanıyorum, bu yüzden HTML5 hatasının nedeni budur.

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

+0

Hangi PHP sürümünü kullanıyorsunuz? ENT_HTML5, php 5.4 ve üstü için ... –

cevap

20

ENT_HTML5, ENT_HTML401 ve bazı diğerleri PHP sürüm 5.4 according to the manual eklendi: Ben ENT_COMPAT | ENT_HTML401 için ENT_QUOTES | ENT_HTML5 değiştirirseniz ben hata aynı tür olsun. Daha önceki sürümler için bu sabitler tanımsızdır ve PHP otomatik olarak tanımsız sabitlerin "kayma" programlamasını ve bunları dizelere dönüştürdüğünü varsayır.