【问题标题】:Run multiple php scripts in sequence from a single php script or batch file in windows从windows中的单个php脚本或批处理文件按顺序运行多个php脚本
【发布时间】:2013-11-20 08:01:36
【问题描述】:

我有 5 个 php 脚本需要一个接一个地执行。如何创建一个 php/batch 脚本来按顺序执行所有 php 脚本。

我想安排一个运行该 php 文件的 cron。

【问题讨论】:

  • 到目前为止你有什么?

标签: php shell cron


【解决方案1】:
#!/path/to/your/php
<?php
include("script1.php");
include("script2.php");
include("script3.php");
//...
?>

另类

#/bin/bash
/path/to/your/php /path/to/your/script1.php
/path/to/your/php /path/to/your/script2.php
/path/to/your/php /path/to/your/script3.php
# ...

如果你的脚本需要通过http访问:

#/bin/bash
wget --quiet http://path/to/your/script1.php > /dev/null 2>&1
wget --quiet http://path/to/your/script2.php > /dev/null 2>&1
wget --quiet http://path/to/your/script3.php > /dev/null 2>&1
# ...

【讨论】:

  • 使用 exec 怎么样??而不是包含,因为如果我使用包含可能会有一些变量冲突
  • 如果您保持代码干净,则无需启动更多 shell 和 php 实例。
  • 这不是一个清洁问题......这是一个家务问题,如果您不希望全局处理所有变量,确保所有变量的名称都是唯一的,这可能会让人头疼,但这就是你必须做。我有点讨厌 include 函数。
【解决方案2】:

我使用“wait”命令做了一些测试,因为我似乎只是在对每个脚本的调用之间放置了等待。我做了一个小测试,在 php 脚本中创建数据库,在 bash 脚本中返回一些记录,然后用另一个 php 脚本更新,然后用另一个 bash 脚本返回更新的结果,它似乎工作正常......

根据我的阅读,只要下标不调用另一个下标,如果在脚本调用之间使用“等待”命令,主脚本就会等待。

代码如下:

#!/bin/sh

/usr/bin/php test.php
wait

/bin/bash test.sh
wait

/usr/bin/php test2.php
wait

/bin/bash test2.sh
wait

echo all done

希望它能按顺序执行所有的php脚本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多