2013-04-13 64 views
0

我需要以正確的順序運行幾個PHP腳本(它們通過OAuth解析和檢索一些數據),ONE之後的另一個,等待前一個腳本完成(腳本2需要在script1等之後解析數據...)。從腳本中調用並運行php腳本

例如:

mainscript.php
script1.php -> COMPLETED -> script2-php -> COMPLETED -> script3.php -> .... 

我打電話腳本用下面的代碼:

<?php 

echo '<br /><br />SCRIPT 1<br /><br /> '; 
include ("script1.php"); 

set_time_limit(0); 
$seconds = 5; // HERE I PUT 5 SECONDS BECAUSE I THINK ITS THE RIGHT TIME TO RUN PARSING 
sleep($seconds); 

echo '<br /><br />SCRIPT 2<br /><br />'; 
include ("script2.php"); 

set_time_limit(0); 
$seconds = 5; // HERE I PUT 5 SECONDS BECAUSE I THINK ITS THE RIGHT TIME TO RUN PARSING 
sleep($seconds); 

echo '<br /><br />SCRIPT 3<br /><br /> '; 
include ("script3.php"); 

set_time_limit(0); 
$seconds = 5; // HERE I PUT 5 SECONDS BECAUSE I THINK ITS THE RIGHT TIME TO RUN PARSING 
sleep($seconds); 

echo '<br /><br />SCRIPT 4<br /><br /> '; 
include ("script4.php"); 

?> 

所以我的問題是:是否有意義把set_time_limit睡成mainscript.php,或INCLUDE函數依次調用正確順序的每個腳本?你能提供一個解決方案,一個建議嗎?

+0

在運行第一個腳本之後,您正在運行睡眠命令**。在大多數情況下,PHP是同步的(不會同時運行)(我認爲一些PHP 5.3函數具有異步回調),因此沒有理由在此處執行「睡眠」。 [有關如何執行異步PHP作業的幫助,請看這裏](http://stackoverflow.com/questions/124462/asynchronous-php-calls)。 – h2ooooooo

+0

@ h2ooooooo謝謝,所以我的代碼是正確的,沒有睡覺?並且我確信腳本會加載到SUCCESSION中? – Huxley

+1

是的,除非您在子PHP文件中使用異步命令(例如'exec',在某些情況下,它不會等到腳本完成),那麼是的,您不需要睡眠命令,因爲代碼在達到該點時已經運行。 – h2ooooooo

回答

1

沒有必要使用睡眠命令,php按定義按順序運行它。

include命令的行爲就好像您已經在主php文件中按順序手動添加了包含的php文件的行!