12

htmlspecialcharsのパラメーターを受け入れる簡単なメソッドを作成しようとしています。PHPの通知を受け取っていますが:

未定義の定数ENT_HTML5-の使用-想定される「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と、別のエラーが発生します

警告:htmlspecialchars()は、パラメーター2が長く、文字列が指定されていることを想定しています。

アップデート

私はPHP5.3を使用しているので、これがHTML5エラーの理由です。に変更ENT_QUOTES | ENT_HTML5するENT_COMPAT | ENT_HTML401と、同じ種類のエラーが発生します。

注意:未定義の定数ENT_HTML401の使用-「ENT_HTML401」と見なされます

4

1 に答える 1

20

ENT_HTML5、ENT_HTML401、およびその他のいくつかは、マニュアルに従ってPHPバージョン5.4で追加されました。以前のバージョンでは、これらの定数は未定義であり、PHPは、未定義の定数がプログラミングの「スリップ」であると自動的に想定し、それらを文字列に変換します。

于 2012-07-17T13:15:16.527 に答える