2010-11-10 61 views
1

我试图在另一个php脚本内激发一个php脚本。 这很容易,问题是第一个脚本不能等待第二个完成。 我想要一个消防和走机制。并发和PHP脚本

任何帮助,将不胜感激,

在此先感谢。

回答

2

exec文档:

如果一个程序以这个函数启动,为了继续在后台运行,程序的输出必须被重定向到一个文件或另一个输出流。否则会导致PHP挂起,直到程序执行结束。

也就是说,以下应该工作:

exec("php /path.to.file.php > /dev/null"); 
+0

谢谢你,这个工作。 – fmarinheiro 2010-11-10 11:45:35

+1

更优雅的方式 - http://stackoverflow.com/questions/45953/php-execute-a-background-process – ajreal 2010-11-10 13:00:56

+0

我认为这是过度杀伤(=不是更优雅:undue文件等),除非你真的需要监视进程。 – 2010-11-10 13:32:41

2

你将不得不使用exec()

在您的服务器/操作系统添加PHP/bin目录添加到环境变量,然后执行命令,像这样:

<?php 
    //Blah 

    exec("php /path.to.file.php /dev/null"); 

    //Blah 
?> 
+0

我已经尝试过高管,但该脚本将等待“path.to.file.php”脚本终止并不是继续。我想在启动后继续。 thnaks – fmarinheiro 2010-11-10 10:06:00

+0

第一个脚本不能等待第二个完成... – ajreal 2010-11-10 10:40:07

+0

我的道歉,我忘了添加'/ dev/null',所以它不会等待。 – RobertPitt 2010-11-10 12:57:41