curl,如何下载带有特殊字符的文件?

时间:2019-03-07 09:56:00

标签: php curl

我的下载功能:

public static function download($a)
{
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $a);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_FAILONERROR, 1);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($curl, CURLOPT_TIMEOUT, 15);
    $a= curl_exec($curl);
    curl_close($curl);
    return $a;
}

并给出此链接:

http://example.com/x.txt

效果很好。但有一个特殊情况:

http://example.com/fájl/név/with ékezetek.txt

然后其“ 400-错误请求。”。curl_errno为22。那怎么下载呢? urlencode不好,因为它会编码主机名本身。

编辑:那些url被赋予“外部”,我对此没有任何影响!

1 个答案:

答案 0 :(得分:0)

尝试制作

base64_encode

数据和

base64_decode

获取原始数据