PHP 在 URL 中使用带有空格的 file_get_contents 时出错



我正在尝试读取外部页面,但问题是网址中有一个空格。例如:

www.somesite.com/test/main .html

您在 main 之后看到一个空格。当您通过浏览器转到 URL 时,页面会出现。但是当我尝试使用PHP file_get_contents函数时,出现错误:

failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request

我尝试了卷曲,但出现相同的 400 错误。关于如何阅读页面的任何建议?我尝试使用 urlencode 但收到 404 错误。

谢谢!

您使用什么浏览器?

您可以做的是检查浏览器在其请求中发送的确切内容,以便服务器接受它。为此,您可以使用浏览器的插件来检查发送标头。

对于火狐,请尝试以下方法: 修改标头 live-http-headers

一旦你知道到底发送了什么,你只需要对cURL做同样的事情。

最有可能的是,您没有发送正确的用户代理而失败,并且服务器不会为您提供服务,将您视为脚本而不是浏览器。

示例如何设置用户代理: set-user-agent-php-curl-spoof

最新更新