将file_get_contents与URL中的空格一起使用时,PHP获取400错误

时间:2018-09-29 22:33:47

标签: php file-get-contents php-curl

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

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

我尝试了curl,但是遇到了同样的400错误。关于如何阅读页面有什么建议吗?我尝试使用urlencode,但收到404错误。

谢谢!

1 个答案:

答案 0 :(得分:0)

您使用什么浏览器?

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

对于Firefox,请尝试以下操作: Modify Headers live-http-headers

一旦知道发送的确切内容,您只需要对cURL执行相同的操作。

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

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