扩展 PHP echo?
是否可以扩展 PHP echo
以便我可以在显示的每个字符串上运行一些额外的处理代码?我需要一种方法来清理所有输出,并且不想在每个显示器上手动调用 strip_tags
。
Is it possible to extend the PHP echo
so that I can run some extra processing code on every string being displayed? I need a way to sanitize all outputs and don't want to have to call strip_tags
on every display manually.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您无法更改
echo
的行为,但您可以使用 php 的 输出缓冲函数(请参阅回调)。然而,这似乎有点矫枉过正。正如 casablance 建议的那样:创建一个函数。You cannot change the behaviour of
echo
but you could make use php's output buffering functions (see the callbacks). However, this seems like overkill. As casablance suggested: create a function.chustar,
用静态方法编写自己的类并将其放在 app/libs 中。
Edit0:你是一个程序员,写出改变代码的代码。
chustar,
write your own class with static methods and put it in app/libs.
Edit0: You are a programmer, write the code that changes the code.
@chutstar,如果您使用的是 Linux,则可以使用 sed 递归地查找目录中 .php 文件中的所有“echo”并将其替换为“strip_echo”。
下面是 Zend 框架如何用“//require_once”替换所有“require_once”,除了文件 Loader/Autoloader.php 或 Application.pp 中出现的“require_once”之外,
所以我应该
测试你的脚本并有用。可能存在意外的替换,您应该检查,例如当“echo”意外地成为某些其他函数名称或变量的一部分时,等等。
@chutstar, If you're on Linux, you can use sed to find and replace all 'echo' with 'strip_echo' in the .php files in a directory, recursively.
Below is how Zend framework replaced all 'require_once' with '//require_once', EXCEPT for 'require_once' that appears in file Loader/Autoloader.php or Application.pp
So YOUR script should be
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..