我正在开发一个简单的基于PHP的网站
基本结构是:
-
它通过网络表单输入一些数据,并将其交给一些要处理的shell脚本(通过system()函数)
-
处理结果被写入一个.txt文件
-
该文件随后被脚本读取并显示在浏览器中
移交完成后,生成.txt文件大约需要2-3秒
有什么正确的方法可以让PHP等待文件生成吗?
目前,我让PHP脚本休眠5秒钟,然后读取存在的文件。这显然不是一个好主意,因为每次执行PHP脚本时,无论实际需要多少时间,都需要5秒。
在Ubuntu上的Apache上运行(如果相关的话)
简单答案:不要使用system()
,使用exec()而不重定向到文件:
$foo = array();
exec('ls', $foo);
$output = implode("'n", $foo);
我认为最好的解决方案是在页面上抛出一个Javascript ajax调用,该调用每隔几秒钟运行一次,以查找更新的文件。一旦找到它,循环就会停止并刷新页面。