7

我正在尝试使用file_get_contents. 图像的 URL 可能包含空格和/或特殊字符,如 ý、á、í 等,当它执行时,操作会失败并显示 HTTP 代码 400 - 错误请求。如果我尝试对 url(或该 URL 的片段)进行编码,使用urlencodeor rawurlencode,我会得到 404。

当图像 URL 不包含空格或特殊字符时,它会毫无问题地下载。

我有一种预感,这与编码有关,但我就是想不通。是否有我缺少的编码选项?是否有必须为请求设置的标头?

4

1 回答 1

3

file_get_contents 的问题是 UTF-8 编码(尚未在 PHP 中实现)如果你想用这个函数下载文件,你必须在你的 URL 上做类似的事情:

$url_utf8 = rawurlencode(utf8_encode($url));

之后:

$content = file_get_contents($url_utf8);

于 2013-10-15T15:09:36.023 回答