2012-07-17 11 views
12

मैं एक सरल विधि बनाने की कोशिश कर रहा हूं जो htmlspecialchars के पैरामीटर स्वीकार करता है। हालांकि मैं पीएचपी नोटिस हो रही है:नोटिस: अपरिभाषित निरंतर 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

अद्यतन

मैं PHP 5.3 का उपयोग कर रहा हूं इसलिए यह HTML5 त्रुटि का कारण है। अगर मैं ENT_COMPAT | ENT_HTML401 करने के लिए ENT_QUOTES | ENT_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 में जोड़ा गया था। पिछले संस्करणों के लिए उन स्थिरांक अपरिभाषित हैं, और PHP स्वचालित रूप से मान लेगा कि अपरिभाषित स्थिरांक प्रोग्रामिंग "पर्ची" हैं और उन्हें तारों में परिवर्तित कर रहे हैं।

संबंधित मुद्दे