【问题标题】:PHP Get 400 error when using file_get_contents with space in URL [duplicate]PHP在URL中使用带有空格的file_get_contents时出现400错误[重复]
【发布时间】:2019-03-05 11:59:22
【问题描述】:

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

www.somesite.com/test/main.html

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

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

我试过 curl 但我得到了同样的 400 错误。关于如何阅读页面的任何建议?我尝试使用 urlencode 但收到 404 错误。

谢谢!

【问题讨论】:

  • 你能贴出真实的网址吗?或者显示您的代码?
  • 你试过用%20替换空格吗?

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


【解决方案1】:

你用什么浏览器?

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

对于firefox,试试这些: Modify Headers live-http-headers

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-18
    • 2017-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-03
    • 1970-01-01
    相关资源
    最近更新 更多