PHP:如何等待外部脚本写入的文件存在

时间:2012-03-20 18:15:46

标签: php bash

我正在开发一个基于PHP的简单网站

基本结构是:

  • 它通过网络表单输入一些数据作为输入,交给某些人 要处理的shell脚本(通过system()函数)

  • 处理结果写入.txt文件

  • 然后脚本读取该文件并显示在浏览器中

切换完成后,生成.txt文件大约需要2-3秒

有没有正确的方法让PHP等待生成文件?

目前我将PHP脚本暂停5秒钟,然后读取文件存在。这显然不是一个好主意,因为每次执行PHP脚本时,无论实际需要什么时间,都需要5秒钟。

如果相关的话,在Ubuntu上运行Apache

2 个答案:

答案 0 :(得分:3)

简单回答:请勿使用system(),请在不重定向到文件的情况下使用exec()

$foo = array();
exec('ls', $foo);
$output = implode("\n", $foo);

答案 1 :(得分:1)

我认为最好的解决方案是在每隔几秒运行的页面上抛出一个Javascript ajax调用,以查找更新的文件。一旦发现循环停止并且页面刷新。