在循环中执行外部php文件

时间:2011-11-15 14:11:39

标签: php internals

如果我有一个while循环并且在其中我通过system()执行一个php文件,让我们说这个php文件需要很长时间才能完成(例如下载图像等),主脚本会等待它完成直到进入下一个循环?

现在它看起来确实在等到当前脚本完成之后才转到下一个但我只是想确定。也许知道PHP内部的人可以解释一下。

感谢。

4 个答案:

答案 0 :(得分:0)

系统执行命令然后挂起,直到命令执行完毕。

Note:
     

如果使用此功能启动程序,为了使其在后台继续运行,必须将>程序的输出重定向到文件或其他输出流。如果不这样做将导致PHP挂起,直到>程序的执行结束。

来自手册:http://php.net/manual/en/function.system.php

答案 1 :(得分:0)

完成system()命令后,循环将继续。解决这个问题的方法可能是使用'&'

启动bg作业

http://lowfatlinux.com/linux-processes.html

我假设您使用的是Linux,我不知道Windows下的解决方法。

答案 2 :(得分:0)

如果brunoais和Sabeen Malik方式不起作用,请同时尝试:

system("command > /dev/null &")

在Windows下我认为你可以使用启动命令:

system("start command")

答案 3 :(得分:-1)

此外,您应该使用set_time_limit,否则您的脚本将被中止