我正在构建一个缓存重新生成的东西,为了进行调试,我需要在调用它时立即看到每个echo
调用。我使用PHP。
所以基本上当我调用它时,它会在几个对象上循环,检查缓存版本并输出成功或失败消息(在调试模式下)。
例如,在使用curl
调用页面时,我需要能够获得实时输出。
我使用ob_
PHP函数玩了一点但似乎没什么用。
ob_start();
echo '[X] Failed to find a location using geocoder for: ' . $searchString . " STATUS: $response->status\n";
ob_end_flush();
但我不确定我是否完全明白它是如何运作的。
作为网络服务器,我使用nginx
php-fpm
。
有什么建议吗?
谢谢!
答案 0 :(得分:1)
我使用flush方法好运。这会尝试将当前输出一直推送到浏览器。关键字是“尝试”。 ob_ functions和flush的最大问题是浏览器具有安全功能,有时在页面加载完成之前不会呈现此信息。这是出于安全目的,所以我读过。
命令是
echo $yourvar
flush();
另一种解决方案是通过命令行/终端运行您的php脚本。终端没有安全功能,无法在显示数据时暂停。当我运行脚本来更新数据库时,我通常会通过终端运行它们,这样我就可以看到输出,而不依赖浏览器让它通过。