我有一个php页面,当从浏览器调用时会显示一个页面,它还会生成一个静态html页面,所以 - http://somewebsite/create.php从浏览器运行时会创建newpage.html。
我也从CLI运行这个页面#php create.php它创建了newpage.html但是我得到了屏幕上的所有输出,这会减慢执行速度,如果我必须多次运行它可能需要几个小时。
有没有办法运行#php create.php并将所有输出压缩到屏幕
MArtyn
答案 0 :(得分:1)
您从ob_start()
开始缓冲输出,然后您可以使用$output = ob_get_clean()
获取所有已显示的内容并将其存储在$output
中,这样您就可以做任何您想做的事情用它。
我相信有$_SERVER
个变量可用于检查您是否从命令行运行。 (显然,您可以检查通常存在的HTTP标头,它们不会从CLI设置)
var_dump($_SERVER)
并查看是否有任何直观的看法:)
答案 1 :(得分:0)
您可以将命令行上的输出通过管道传输到/ dev / null,例如:
php http://somewebsite/create.php > /dev/null
这实际上不会阻止php生成输出,只是显示它。
如果您确实想要停止生成输出,可以使用带有ob_start()的php的输出缓冲,并将输出放在代码末尾带有ob_get_flush()的变量中,并且仅在输出时回显输出param未传递给脚本。