2010-11-10 54 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