是否可以扩展 PHP echo
,以便我可以在显示的每个字符串上运行一些额外的处理代码?我需要一种清理所有输出的方法,并且不想strip_tags
手动调用每个显示器。
问问题
249 次
3 回答
5
您无法更改 php 的行为,echo
但可以使用 php 的输出缓冲函数(请参阅回调)。然而,这似乎是矫枉过正。正如 casabance 建议的那样:创建一个函数。
于 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'
#!/bin/sh # cd path/to/ZendFramework/library # 将所有 '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'
所以你的脚本应该是
#!/bin/sh # 用'strip_echo'替换所有'echo' # cd path/to/ZendFramework/library 寻找 。-name '*.php' -print0 | xargs -0 sed --regexp-extended --in-place 's/echo/strip_echo/g'
I tested and it works. There might be unexpected replaces that you should check though, for example when 'echo' is accidentally part of some other function names or variables, etc..
于 2011-03-05T16:12:14.113 回答