6

htmlentities($data, ENT_QUOTES)データベースから取得したデータを表示する前に使用しています。

ENT_QUOTES関数のデフォルトでフラグを設定できる方法はありますhtmlentities()か?そうすれば、私が書いたとしても、それはとして機能htmlentities($data)するはずhtmlentities($data, ENT_QUOTES)です。

phpのドキュメントに書かれているように、デフォルトはですENT_COMPAT | ENT_HTML401

参考までに、私はcodeigniterフレームワークphp5を使用しています。

更新1:Michaelによって提案されたカスタム関数でラップすることは役立つかもしれませんが、私はすでにこれをENT_QUOTESフラグなしでウェブサイトのどこでも使用しており、関数のデフォルトを変更するためにphpによって提供される方法があるかどうか疑問に思いました。

更新2:codeigniter(Wesleyが提案)によって提供されるhtml_escape()組み込み関数は、独自のラッパー関数を作成する必要がないように、私にとって最適だと思います。

4

2 に答える 2

3

私が知っているデフォルトのフラグを変更する方法はありませんが、コメントであなたに与えられたアドバイスは、とにかくこれにアプローチするための絶対に最良の方法です: ラッパー関数を使用してください.

便利なことに、Codeigniter には、適切な名前のものが既に組み込まれています。

echo html_escape($string);

配列を渡すこともできます。次のようにします。

/**
* Returns HTML escaped variable
*
* @access   public
* @param    mixed
* @return   mixed
*/
if ( ! function_exists('html_escape'))
{
    function html_escape($var)
    {
        if (is_array($var))
        {
            return array_map('html_escape', $var);
        }
        else
        {
            return htmlspecialchars($var, ENT_QUOTES, config_item('charset'));
        }
    }
}

プロジェクトでを検索しhtmlentities、(慎重に) に置き換えてくださいhtml_escape。これにより、関数を変更できるため、将来簡単に変更を加える機会も提供されます。これは、初期投資としては少々手間がかかりますが、それだけの価値があります。

于 2012-11-05T03:18:58.613 に答える
0

変数に直接アクセスしている場合。例: $this->model_name->variable;

次に、モデル名に__get関数を使用して、オブジェクトからアクセスされる前に処理できます。 http://www.php.net/manual/en/language.oop5.overloading.php#object.get

于 2012-11-05T06:05:01.230 に答える