【问题标题】:file_get_content is not working for a specific linkfile_get_content 不适用于特定链接
【发布时间】:2016-01-19 13:05:35
【问题描述】:

我正面临一个非常困难的情况,我有两个 URL 从中读取 XML 内容。下面是我的简单脚本。

$a1 = file_get_contents('http://xml.propspace.com/feed/xml.php?cl=1678&pid=2323&acc=2323');

var_dump($a1);

echo '<hr>';

$a2 = file_get_contents('http://xml.propspace.com/feed/xml.php?cl=1066&pid=9922&acc=1154');

var_dump($a2);

第一个链接“a1”存在,但是当我尝试通过 file_get_content 读取 URL 时,它给了我警告。

警告:file_get_contents(http://xml.propspace.com/feed/xml.php?cl=1678&pid=2323&acc=2323):打开流失败:HTTP 请求失败!第 2 行的 serverFilePath/yooy.php 中未找到 HTTP/1.1 404

返回 bool(false)

另一个链接“a2”工作正常并返回 XML 提要。

有什么建议吗?

这是在单个页面上运行的代码输出的屏幕截图。

【问题讨论】:

  • 该链接没有显示任何结果,这就是您出错的原因。
  • HTTP request failed! HTTP/1.1 404 NOT FOUND 非常自我解释。
  • 使用if( get_headers($url)[0] != "HTTP/1.0 404 Not Found" ){}检查url是否不是404然后使用file_get_contents这样你就不会得到这种类型的错误,但是如果你在循环中使用它,它会让你的应用缓慢。
  • @ajay 如果您访问该网址,则该网址存在。 "link,而且它正在我的本地主机上运行
  • 谢谢,这是一个安全问题,仅允许特定 IP 地址列出 $a1

标签: php xml file-get-contents


【解决方案1】:

事实上,您发布的链接($a1$a2),其中一个不起作用,猜猜是哪个。

以下是访问$a1时返回的错误。

Error code: 1001 happened, please check with customer support immediately. 

For assistance, please contact support@propspace.com. 

在处理外部链接/API 时,始终养成首先从 PHP 外部向其发出请求的习惯,这样做可以排除另一端出错的可能性,并节省大量宝贵的资源调试时间。

如果它是一个简单的 GET 请求,那么只需在浏览器中导航到它就可以了,但如果它是 POST,那么您可以使用 chrome 的 Postman 扩展名,它对我来说完美无缺。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-27
    • 2017-06-22
    • 1970-01-01
    • 1970-01-01
    • 2017-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多