情况是这样的。我创建了多个名为operation.php的php文件,并托管在我的域中。像这样:
好的,现在我想要的是编写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,或者可能有一些时间间隔!
答案 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