我一直在尝试以 2 种不同的方式从 API 下载文件,但没有成功:https://example.com/export/banana/by_date/v4?api_token=666&from=$today&to=$today
*注意文件不以 结尾.csv
,它只是弹出文件的下载文件。
下载的文件是 .CSV 文件。
我尝试使用 CURL:
// Date looks like this: 2016-01-31
$today = date("Y-m-d");
$output_filename = "test.csv";
$host = "https://example.com/export/banana/by_date/v4?api_token=666&from=$today&to=$today";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $host);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, false);
curl_setopt($ch, CURLOPT_REFERER, "https://www.example.com");
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$result = curl_exec($ch);
curl_close($ch);
print_r($result); // prints the contents of the collected file before writing..
// the following lines write the contents to a file in the same directory (provided permissions etc)
$fp = fopen($output_filename, 'w');
fwrite($fp, $result);
fclose($fp);
- 有了这段代码,我得到了一个黑色的 test.csv 文件。
- 运行功能后,我没有在屏幕上打印任何内容(
print_r($result)
)
我尝试使用file_put_contents
功能:
$today = date("Y-m-d");
echo $today;
file_put_contents("", fopen("https://example.com/export/banana/by_date/v4?api_token=666&from=$today&to=$today", 'r'));
// I TRIED THIS ONE TOO:
// file_put_contents("temp.csv", "https://example.com/export/banana/by_date/v4?api_token=666&from=$today&to=$today");
*我在第一行 ( https://example.com/export/banana/by_date/v4?api_token=666&from=2016-01-31&to=2016-01-31
) 中得到一个包含 URL 的 CSV 文件。
有人可以告诉我我这样做是否正确吗?(因为这不是一个文件的直接链接,也许我的工作方式错误)。这样做的正确方法是什么。