我有一个位于我的几个网站上的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)我将创建一个界面来列出这些列表,每个列表旁边都有复选框,还有一个select all等
我希望创建一个PHP脚本,它将遍历该列表中的整个urls集合,并执行对每个服务器上的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‘版本’来查看版本是什么,并且它知道要去我的中央服务器上获取哪个文件来执行更新。
我只是在寻找一些线索,如何为这个仪表板创建脚本,让它成为运动……
总而言之,这基本上是一个批量更新脚本,它可以执行wordpress主题更新,而不必去每个站点单独执行它们。
发布于 2010-02-24 05:37:48
你可能想看看PHP的cURL扩展,它允许你很容易地在你的脚本中向多个站点发送请求。
如果您需要进一步的帮助,请让我知道-我会编辑。
编辑
你可以使用一个javascript框架来轻松管理你的AJAX调用(例如,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>这就是你要的!
发布于 2010-02-24 06:32:40
看起来您正在使用jQuery,AJAX可以很好地调用脚本而不是PHP脚本。如果不是这样,忽略这一点。
单击"GO“按钮时,使用javascript获取所有选中的复选框的值。循环遍历这些对象,执行$.get()操作。这应该就是您需要做的全部工作。
您可以选择捕获来自get()调用的响应,并更新状态div,让您知道它们是否都运行成功。
发布于 2010-02-24 12:40:33
我看不出有必要使用javascript。老实说,如果你不太依赖php的能力,我只会抛出一堆iframe标签,它们指向适当的url。让浏览器处理请求。iframes的好处是你可以让你的远程脚本输出“成功”或错误消息。
https://stackoverflow.com/questions/2321851
复制相似问题