【问题标题】:Php download file from link that downloads file从下载文件的链接下载文件
【发布时间】:2016-06-23 13:40:10
【问题描述】:

我正在尝试使用 php 下载在您调用 url 时创建和下载的文件。

在这种情况下,我正在尝试以编程方式从荷兰气象研究所下载一个 txt 文件,这可以通过转到(在本例中)此 url http://projects.knmi.nl/klimatologie/daggegevens/getdata_dag.cgi?lang=nl&byear=2016&bmonth=6&bday=20&eyear=2016&emonth=6&eday=22&variabele=FHX&variabele=FXX&variabele=TG&variabele=TN&variabele=TX&stations=249&submit=Download+data+set 来完成

转到该网址下载文件。

我想用 php 来做这个,所以我可以使用文件的内容来制作自定义图表。

有谁知道如何用 php 做到这一点?

【问题讨论】:

  • 您应该告诉我们到目前为止您尝试了什么,您在尝试中实际面临的问题是什么。您还希望我们如何帮助您编写代码?
  • 好吧,我错了,file_get_contents 确实有效。我认为我的链接有问题,这就是我的内容为空的原因。

标签: php file curl


【解决方案1】:

使用 file_get_contents():http://php.net/manual/en/function.file-get-contents.php

或使用 CURL 函数:http://php.net/manual/en/function.curl-exec.php

编辑:CURL 解决方案:

$url = 'http://projects.knmi.nl/klimatologie/daggegevens/getdata_dag.cgi?lang=nl&byear=2016&bmonth=6&bday=20&eyear=2016&emonth=6&eday=22&variabele=FHX&variabele=FXX&variabele=TG&variabele=TN&variabele=TX&stations=249&submit=Download+data+set';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, false);
$str = curl_exec($curl);

【讨论】:

  • File_get_contents 获取文件的内容,在这种情况下,文件是从链接下载的。我试过了,还是不行
  • file_get_contents 会失败,具体取决于 PHP 配置,即:allow_url_fopen
  • 您的环境可能出于安全原因禁用了此功能。这就是为什么我还提到了我推荐的 CURL 选项。
【解决方案2】:

试试:

$content = file_get_contents("The URL here");
echo $content;

【讨论】:

  • 这会失败,具体取决于 PHP 配置,即:allow_url_fopen
  • 我在自己的服务器上试了一下,收到的内容还不错。
  • 这取决于你的 PHP 配置,有很多托管服务提供商默认不允许这样做
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-27
  • 2019-01-17
相关资源
最近更新 更多