如何使用php动态下载文件到服务器


How to download file to server dynamically using php

我很想知道是否有办法从SERVER a下载文件并将其放在SERVER B上,SERVER a可以动态更改下载文件中的内容。

它背后的要点是,我正试图为一个工具构建一个错误处理程序,当作为工具所需部分的文件丢失时,该程序将被使用。这就像WordPress意识到你的网站上有一个文件丢失,你的网站向WordPress.com发送请求,以获取丢失的文件,如下所示:

(SERVER B):PHP在include 上吐出错误

(SERVER B):PHP试图通过说SERVER B缺少FILE AFILE BFILE C等来从SERVER a获取丢失文件的文件安装程序。

对于上面的步骤,我认为可以使用以下方法完成:

file_put_contents("missing_installer.php", "http://SERVER_A.com/mi_inst_installer.php?query-asking-for-missing-item(s)=missing-item", 'r'));

注意(仅当您不了解以上代码的作用时):以上代码应该告诉SERVER A的PHP文件mi_inst_installer.PHP吐出数据(安装程序),并将其放入SERVER B 上的文件missing_installer.PHP中

(SERVER B):PHP使用新获得的missing_installer.PHP 安装丢失的文件

有什么想法吗?

您也可以使用cURL在SERVER A端进行动态:

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'));

只有当allow_url_fopen设置为1时,Jacky的答案才是好的。

还使用PHP对cURL传输选项的引用(允许您自定义请求的发送和/或返回方式)。此外,习惯cURL的一般工作方式也是个好主意;请参阅其他PHP参考(客户端URL库)

试试这样的东西:

$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()的第二个参数中。