PHP:file_get_contents URL 上的错误请求

PHP: bad request on file_get_contents URL

这是我的代码:

$url = "https://de.wikipedia.org/wiki/Creed_–_Rocky’s_Legacy";
$html = file_get_contents($url);

我收到这个错误:

HTTP request failed! HTTP/1.0 400 Bad Request

问题是 URL 中的特殊字符 - 如果我使用编码的 URL(我可以从浏览器 copy/paste)

https://de.wikipedia.org/wiki/Creed_%E2%80%93_Rocky%E2%80%99s_Legacy

我尝试使用 urlencode() 但它会编码整个字符串并且根本不起作用:

https%3A%2F%2Fde.wikipedia.org%2Fwiki%2FCreed_%96_Rocky%92s_Legacy

那么,我怎样才能像那样对 URL 上的特殊字符进行编码?

您只能对 url

的最后一部分进行编码
$url = "https://de.wikipedia.org/wiki/" . urlencode("Creed_–_Rocky’s_Legacy");
$html = file_get_contents($url);

或者,如果您的 $url 变量发生变化:

$url = "https://de.wikipedia.org/wiki/Creed_–_Rocky’s_Legacy";
$html = file_get_contents(dirname($url) . "/" . urlencode(basename($url)));