我想访问另一个PHP文件中定义的某些函数,但该文件还会输出我不想显示的内容。
有没有办法在不“运行”整个文件的情况下访问这些功能?也许通过将该文件的输出重定向到隐藏的地方?
答案 0 :(得分:4)
<?php
ob_start();
require 'filename.php';
ob_end_clean();
?>
答案 1 :(得分:3)
呃,您可以使用输出缓冲区并手动清除内容,但为什么不将常用功能移动到公共包含中?我通常将常见的辅助方法推入自己的文件中(不会输出任何内容)。
答案 2 :(得分:2)
涉及输出缓冲的答案是正确的,但是您在相当基础的层面上解决了错误的问题。
抓住那些有用的功能并将它们移动到另一个文件。然后从您正在处理的文件和它们当前所在的文件中包含该文件。一切正常,没有输出缓冲的怪异黑客。
答案 3 :(得分:1)
您可以使用ob_start()偷偷缓冲包含的输出,然后使用ob_end_clean()删除它。仅当脚本不刷新输出缓冲区本身时,此方法才有效。
更好的方法是从include中提取所需的函数,并将它们放入单独的文件中。
答案 4 :(得分:0)
好吧,您可以使用Output Buffer然后丢弃它来捕获文件的输出。但是,仍会发生任何其他全局副作用(全局变量集,文件写入等)。重构该文件以将函数移动到它们自己的包含中会好得多,这两个包都可以include
。