12
我想創建一個接受htmlspecialchars參數的簡單方法。雖然我得到PHP的通知:注意:使用未定義的常量ENT_HTML5 - 假定爲'ENT_HTML5'
Use of undefined constant ENT_HTML5 - assumed 'ENT_HTML5'
- 任何想法可能是造成這個?
/**
* 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;
}
- 如果我改變:
ENT_QUOTES | ENT_HTML5
爲:ENT_QUOTES
,我得到一個不同的錯誤
Warning: htmlspecialchars() expects parameter 2 to be long, string given
UPDATE
我使用PHP 5.3,所以這是HTML5錯誤的原因。如果我改變ENT_QUOTES | ENT_HTML5
到ENT_COMPAT | ENT_HTML401
我得到相同類型的錯誤:
Notice: Use of undefined constant ENT_HTML401 - assumed 'ENT_HTML401'
您使用的是什麼版本的PHP? ENT_HTML5適用於PHP 5.4及更高版本... – 2012-07-17 13:15:33