好的,所以我有这个PHP脚本在一个很好的小无限循环中运行(有睡眠,不用担心)。我用它作为一个页面,我可以从任何计算机去监控我的数据库统计信息。每隔2秒,它会从数据库中获取统计数据并将其显示在屏幕上。
现在,这在我的Windows机器上的XAMPP上运行得很好。我试图让它在我的Linux网络服务器上运行,用PHP 5.3.5运行apache2,但由于某种原因它实际上不会显示任何内容(它不会转到空白页面,它只是停留在页面上我在进入监控页面之前,但是“工作”车轮旋转了。我觉得这是某种缓存的东西,它不想显示页面,直到它完成运行脚本(虽然我需要它)。我每隔2秒就使用flush()和ob_flush(),并确保在我的php.ini文件中output_buffering = off和zlib.output_compression = off。
我意识到这个问题似乎已经被问了很多,但我已经尝试了所有我能找到的关于这个问题的最终失败。
注意:就像我说的那样,这对我的XAMPP安装使用apache和PHP 5.3.6很有效。我的问题不是关于如何找到替代品,而是关于为什么它在那里工作而不是在我的linux网络服务器上更多。
答案 0 :(得分:2)
让php脚本运行“无限”的时间几乎是不合适的。你可以:
<meta http-equiv="refresh" content="5">
)所有这些解决问题的方法都可以为您节省您现在遇到的头痛类型。
答案 1 :(得分:1)
这是你可以做的,
让您的脚本将参数写入javascript,这样您就可以使用新参数每2秒重新加载一次页面。例如:
<script type='text/javascript'>
setTimeout(function() {
location.href="http://www.example.com/?jobid=<?php echo $nextJobId ?>";
},2000);
</script>
所以如果你需要在每个sql查询上做一个Db偏移,你可以在url中传递该参数。拥有一个无限循环似乎是一个好主意,但也许你应该重新评估你的代码,看看你是否真的需要它,或者你是否可以这样实现它