后来我发现php在命令行执行你的php时会显示输出:
php myscript.php
但是现在我也没有从命令行获得任何输出! 有什么样的技巧或设置应该让php显示输出吗?
答案 0 :(得分:6)
很可能,它正在缓存结果(在PHP和Web服务器中),而不是实际将它们发送到浏览器。我能给出的最好的建议是我的代码中的这个块:
/**
* Act as a "breakpoint" in the code, forcing everything to be flushed to the browser
*/
function breakpoint() {
global $debug;
if ($debug) { // So that it doesn't slow down extracts
ob_flush();
flush();
sleep(.1);
}
}
如果我们在调试模式下运行页面,那么$debug
就是我们网站特有的。
您需要的两件事是ob_flush()
,它将PHP的缓冲区发送到Web服务器的缓冲区,而flush()
将导致服务器转储到浏览器。 (注意:如果浏览器在显示任何内容之前进行缓存,则无法阻止此操作)sleep
可以帮助确保它不会过载,并且有可能正确刷新。
请参阅: http://ca.php.net/manual/en/function.ob-flush.php 和 http://ca.php.net/manual/en/function.flush.php
答案 1 :(得分:3)
PHP和您的Web服务器都可能缓存echo和print的输出。在脚本完成之前,这通常会导致无输出。
尝试查看flush()以强制输出PHP,但它仍然可能会在Web服务器上被阻止,所以可能没有帮助......