echo
表示されるすべての文字列に対して追加の処理コードを実行できるように、PHP を拡張することは可能ですか? strip_tags
すべての出力をサニタイズする方法が必要で、すべてのディスプレイを手動で呼び出す必要はありません。
3 に答える
5
の動作を変更することはできませんが、echo
php の出力バッファリング関数を使用することはできます(コールバックを参照)。ただし、これはやり過ぎのようです。カサブランスが示唆したように:関数を作成します。
于 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 に答える