我的項目需要使用if-else條件運行的3個php腳本。第一個腳本將加載到站點的索引頁面上,以檢查是否設置了條件,如果是,則會調用第二個腳本。第二個腳本檢查是否設置了其他條件,如果一切正常,它最終會調用最後一個腳本。php shell_exec()幫助需要在後臺運行腳本
現在我可以通過將腳本包含在if語句中來做到這一點,但由於最終結果是資源佔用MySQL轉儲,我需要它獨立於原始觸發器頁面運行。
此外,無論索引頁面上的用戶操作如何,這些腳本都應該在觸發後繼續執行其操作。
最後一件事:它應該能夠在win和nix上運行。
你會如何做到這一點?
以下代碼是否有意義?
if ($blah != $blah-size){
shell_exec ('php first-script.php > /dev/null 2>/dev/null &');
}
//If the size matches, die
else {
}
非常感謝。
更新:以防萬一其他人正在經歷同樣的交易。 在將腳本作爲CGI運行時,php似乎存在一個錯誤,但Apache中的命令行可以與我測試過的所有版本一起工作。
看到錯誤https://bugs.php.net/bug.php?id=11430
所以不是我所說的腳本是這樣的:
exec("php-cli mybigfile.php > /dev/null 2>/dev/null &");
或者你可以把它作爲外殼。它適用於nix系統,但我的本地窗口是絕望的,所以如果有人在Windows上運行它,它的工作原理,請更新。
創建另一個腳本工作者,由cron/windows調度器運行 – zerkms 2012-03-29 20:53:06
這個的全部重點是不使用cron並且被用戶觸發。:) – Chris81 2012-03-30 14:31:03