我很想知道是否有办法从SERVER A下载文件并将其放在SERVER B上,其中SERVER A能够动态更改下载文件中的内容。
背后的一点是,我正在尝试为工具构建错误处理程序,当工具所需的部分文件丢失时将使用该工具。这就像WordPress意识到您的网站上缺少一个文件,并且您的网站向wordpress.com发送请求以获取丢失的文件:
(服务器B): PHP在include
(服务器B): PHP尝试通过说服务器B缺少FILE A
,FILE B
,{{1}来获取来自服务器A的丢失文件的文件安装程序等等...
对于上面的步骤,我认为可以使用此方法完成:
FILE C
注意(仅当您不理解上述代码的作用时):以上代码应该告诉SERVER A的PHP文件mi_inst_installer.php吐输出数据(安装程序)并将其放入SERVER B上的文件missing_installer.php
(服务器B): PHP使用新获得的missing_installer.php安装丢失的文件
关于该怎么做的任何想法?
答案 0 :(得分:2)
尝试这样的事情:
$mycontent = file_get_contents('http://SERVER_A.com/mi_inst_installer.php?query-asking-for-missing-item(s)=missin-item');
file_put_contents('missing_installer.php', $mycontent));
首先需要(使用file_get_contents()
)获取下载文件的内容,然后先将其放入file_put_contents()
的第二个参数中。
答案 1 :(得分:2)
您还可以在服务器A侧使用cURL进行动态处理:
function curl($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$return = curl_exec($ch);
curl_close ($ch);
return $return;
}
file_put_contents('missing_installer.php', curl('http://SERVER_A.com/mi_inst_installer.php?query-asking-for-missing-item(s)=missin-item'));
Jacky的回答只有在allow_url_fopen
设置为1时才有效。
还可以使用PHP's reference进行cURL传输选项(允许您自定义发送和/或返回请求的方式)。另外,习惯cURL的工作原理是个好主意;见the other PHP reference (client URL library)