从浏览器中的1个PHP脚本执行多个PHP脚本

时间:2014-11-27 06:37:16

标签: php browser

情况是这样的。我创建了多个名为operation.php的php文件,并托管在我的域中。像这样:

  1. example.com/operation.php
  2. example123.com/operation.php
  3. example1234.com/operation.php
  4. 好的,现在我想要的是编写1个单独的PHP脚本,它将成为所有这些operation.php脚本的母亲。有点像我从浏览器执行motherexample.com/operaterun.php然后所有这些PHP脚本将逐个运行。

    这可能吗?这会导致服务器中断吗?我不想一次运行所有这些,也许每个脚本执行之间需要10秒的间隔。

    需要帮助!

    更新我不确定你们是否会得到它,但这是另一个例子。 假设您有100个站点,每个站点都有maintenance.php,位于example001.com/maintenance.php,现在无法在浏览器中逐个加载和运行这100个maintenance.php中的每一个。所以这就是为什么我想要一个单一的mother-maintenance.php,当从浏览器运行时,将逐个执行每个maintenance.php,或者可能有一些时间间隔!

4 个答案:

答案 0 :(得分:1)

如果用户这样做,我会推荐AJAX。 否则你可以尝试这样的代码。

<?php
$somearg = escapeshellarg('blah');
exec("php file2.php $somearg > /dev/null &");

找到(https://stackoverflow.com/a/1110260/4268741

但是,您需要对其进行一些更改才能使其适用于您的项目。

答案 1 :(得分:0)

您需要从母亲motherexample.com/operaterun.php运行类似wget调用的内容。 wget是针对linux的,如果你使用windows域检查替代品 示例

wget http://example.com/operation.php
wget http://example123.com/operation.php
wget http://example1234.com/operation.php

答案 2 :(得分:0)

您可以使用AJAX请求。只需从您的母亲脚本请求到子页面。

或者您可以使用简单的方法 - 为每个孩子使用iframe。如果您有100个子页面,那么只需在母版页面100上生成带有src到子级的iframe。或者您可以通过javascript创建此iframe并将其添加到页面。然后你可以在请求之间做出延迟。

答案 3 :(得分:-1)

我认为file_get_contents可以帮助您:

<?php
//index.php
set_time_limit(0);

$op_list = array(
    "example.com/operation.php",
    "example123.com/operation.php",
    "example1234.com/operation.php",
);

$opts = array(
    "http" => array(
        "method" => "get",
        "timeout" => 60,
        )
);

$context = stream_context_create($opts);

foreach($op_list as $key => $value)
{
    if($response = file_get_contents($value, null, $context))
    {
        $json_decode = json_decode($response, true);

        echo "{$value}: time_start: {$json_decode['time_start']}, time_end: {$json_decode['time_end']} <br />";
    }
    else
    {
        echo "{$value}: fail <br />";
    }
}

?>

这是一个完整的例子:

http://try.valinv.com/php/21a6092d20601c77982f7c1ec6b2cc23.html