2013-04-13 40 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文件的行!