我的几个网站上都有updater.php脚本。此updater.php文件设置为在从主基站(我的中央服务器)调用时执行代码。
所以我希望创建一个各种各样的仪表板,其中列出了我的所有远程站点地址,以及这个updater.php脚本的路径,如此......
www.server1.com/path/updater.php
www.server2.com/path/updater.php
www.server3.com/path/updater.php
...etc (there will be lots of them)
我将创建一个界面来列出这些界面旁边的复选框,并选择全部等等
我正在寻找创建一个PHP脚本,它将迭代该列表中的整个url集合并执行对每个服务器上updater.php文件的调用,例如传递一个“version = v001”。 ..
$.get("http://server1.com/path/updater.php?version=v001");
$.get("http://server2.com/path/updater.php?version=v001");
...etc
我已经在updater.php(驻留在我所有网站中的文件)中设置了代码,这样当它收到请求时,会解析$ _GET ['version']以查看版本是什么,它知道要在我的中央服务器上运行哪个文件来执行更新。
我只是在寻找一些线索,如何为此仪表板创建脚本,将其全部设置为动态...
PS:总的来说,这基本上是一个批量更新程序脚本,可以执行wordpress主题更新,而无需访问每个站点并单独执行。
答案 0 :(得分:1)
看起来你正在使用jQuery,并且AJAX可以调用脚本而不是PHP脚本。如果情况并非如此,请忽略这一点。
单击“GO”按钮后,使用javascript获取所有选中复选框的值。循环遍历那些,执行$ .get()的事情。这应该就是你需要做的一切。
或者,您可以捕获来自get()调用的响应并更新状态div,以告知您它们是否都成功运行。
答案 1 :(得分:0)
您可能想检查PHP的cURL扩展程序,它允许您轻松地向脚本中的多个站点发送请求。
如果您需要进一步的帮助,请告诉我 - 我会修改。
编辑
你可以使用一个允许你轻松管理你的AJAX调用的javascript框架(即jQuery - imho最严格)。然后做类似的事情:
<form name="updater" id="updater" ...>
<input type="checkbox" name="server[]" value="0"/> Server 1
<input type="checkbox" name="server[]" value="1"/> Server 2
...
</form>
<script type="text/javascript">
var server_url = [
'www.server1.com/path/updater.php',
'www.server2.com/path/updater.php',
'www.server3.com/path/updater.php'
];
$('#updater').bind('submit', function() {
$('input[name="server[]"]:checked', this).each(function() {
$.get(server_url[this.value]);
});
});
</script>
你走了!
答案 2 :(得分:0)
我认为不需要javascript。老实说,如果你依靠php的能力摇摇欲坠,我会抛弃一堆iframe标签指向相应的网址。让浏览器执行请求。关于iframe的好处是您可以让远程脚本输出“成功”或错误消息。
答案 3 :(得分:0)
由于无法执行跨站点脚本,您无法单独使用jQuery。
<?php
if($_SERVER['REQUEST_METHOD'] == "POST")
{
// Run through each
foreach($_POST['servers'] as $serverHost)
{
// Now contact the server.
// if getting urls is disabled (which some hosts do)
// you can use CURL to connect to the server.
$result = file_get_contents($serverHost);
}
}
?>
<form method="post" >
<input type="checkbox" name="servers[]" value="http://foo1.com/updater.php" />
<input type="checkbox" name="servers[]" value="http://foo2.com/updater.php" />
<input type="checkbox" name="servers[]" value="http://foo3.com/updater.php" />
<input type="checkbox" name="servers[]" value="http://foo4.com/updater.php" />
<input type="checkbox" name="servers[]" value="http://foo5.com/updater.php" />
<input type="submit" />
</form>