使用PHP通过URL下载并重命名文件

Sus*_*e92 -1 php download

我有这个URL

www1.intranet.com/reportingtool.asp?settings=var&export = ok

在那里我可以下载报告.报告的文件名包含时间戳.例如123981098298.xls,每次下载都会有所不同.

我想要一个具有此功能的脚本:

<?php
//Download the File

//rename it to **report.xls**

//save it to a specified place
?>
Run Code Online (Sandbox Code Playgroud)

搜索stackoverflow和谷歌搜索这个主题后我没有任何想法:(

这通常是可能的吗?

Jon*_*Jon 7

最简单的方案

您可以下载报告file_get_contents:

$report = file_get_contents('http://www1.intranet.com/reportingtool.asp?...');
Run Code Online (Sandbox Code Playgroud)

并在本地保存(在运行PHP的机器上)file_put_contents:

file_put_contents('/some/path/report.xls', $report);
Run Code Online (Sandbox Code Playgroud)

更多的选择

  • 如果下载需要控制HTTP请求(例如,因为您需要使用cookie或HTTP身份验证),则必须通过cURL该请求完成对请求的完全自定义.
  • 如果报告的大小很大,那么它可以直接流式传输到目的地,而不是分三步执行读/存储/写入(例如,使用fopen/ fread/ fwrite).