1

最近の CakePHP 1.3.4 バージョンで、Sanitize::html が 2 重にエンコードされた html エンティティを返すことを発見しました。

これは CakePHP の対応するチケットです: http://cakephp.lighthouseapp.com/projects/42648/tickets/1152-sanitizehtml-needs-double_encode-parameter-in-htmlentities

PHP 5.2.14 で CakePHP 1.3.4 を使用する必要があるため、double_encode パラメーターを変更する必要があります。コアをいじる必要がないように、cake で Sanitize::html メソッドをオーバーロードする方法はありますか?

4

1 に答える 1

2

/app/libsディレクトリでサブクラス化できます。

App::import('Sanitize');

class MySanitize extends Sanitize {

    public static function html(...) {
        ...
    }

}

MySanitizeの代わりに使用するように切り替える必要がありますがSanitize、それは大きな問題にはなりません。すでに頻繁に使用している場合は、テキストの検索/置換で処理できます。

于 2010-09-29T07:28:06.047 に答える