0

echo表示されるすべての文字列に対して追加の処理コードを実行できるように、PHP を拡張することは可能ですか? strip_tagsすべての出力をサニタイズする方法が必要で、すべてのディスプレイを手動で呼び出す必要はありません。

4

3 に答える 3

5

の動作を変更することはできませんが、echophp の出力バッファリング関数を使用することはできます(コールバックを参照)。ただし、これはやり過ぎのようです。カサブランスが示唆したように:関数を作成します。

于 2011-03-05T15:58:46.860 に答える
2

チュースター、

静的メソッドを使用して独自のクラスを作成し、app/libs に配置します。

Edit0: あなたはプログラマーで、コードを変更するコードを書きます。

于 2011-03-05T15:56:32.477 に答える
0

@chutstar、Linux を使用している場合は、sedを使用して、ディレクトリ内の .php ファイル内のすべての「echo」を再帰的に検索して「strip_echo」に置き換えることができます。

以下は、Zend フレームワークがすべての「require_once」を「//require_once」に置き換えた方法です。ただし、ファイル Loader/Autoloader.php または Application.pp に表示される「require_once」は除きます。

#!/ビン/sh
# cd パス/to/ZendFramework/ライブラリ
# すべての 'require_once' を '//require_once' に置き換え、Autoloader.php と Application.php をスキップします
 探す 。-name '*.php' -not -wholename '*/Loader/Autoloader.php' -not -wholename '*/Application.php' -print0 | xargs -0 sed --regexp-extended --in-place 's/(require_once)/\/\/ \1/g'

だからあなたのスクリプトは

#!/ビン/sh
# すべての 'echo' を 'strip_echo' に置き換えます
# cd パス/to/ZendFramework/ライブラリ
 探す 。-name '*.php' -print0 | xargs -0 sed --regexp-extended --in-place 's/echo/strip_echo/g'

私はテストしましたが、動作します。ただし、たとえば、「echo」が誤って他の関数名や変数の一部になっている場合など、チェックする必要がある予期しない置換がある可能性があります.

于 2011-03-05T16:12:14.113 に答える