检查 url 是否提供可下载文件?

Check if a url offers a downloadable file?

我目前正在处理一些联盟提要,其中大多数以原始 .csv 格式提供。我正在使用 file_get_contents 与 fputcsv() 一起生成 .csv 文件。

不幸的是,我的附属机构 url 之间还有一个 link,当您在浏览器中访问 url 时,它会立即下载一个 csv 文件。这不需要进一步的工作,因为它是一个完美的 .csv 文件。

因为我只是将我的 url 放在一个数组中,所以我需要检查何时提供文件作为下载 link。我该如何检查才能跳过所有默认的 .csv 逻辑而不弄乱这个文件?

我不知道要搜索什么,因为我不知道直接下载文件而不是查看原始 csv 数据时到底发生了什么。希望有人能帮助我。

您可以使用 CURL 检查文件是否可下载:

PHP

    function checkDownloadable($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_NOBODY, 1);
    curl_setopt($ch, CURLOPT_FAILONERROR, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    if(curl_exec($ch) !== FALSE) {
        return true;
    }
    else {
        return false;
    }
}