PHP file_get_contents现在被禁止出错

时间:2011-05-02 13:54:29

标签: php

我正在开发一个PHP应用程序,它将遍历URL列表,检查链接是否有效。我实现这一点的方法是使用php函数file_get_contents打开URL。然后,我在页面源中搜索某个字符串值,以确定链接是好还是坏。因此,在测试应用程序时,在一天结束时,每当我尝试检查此网站上的URL时,我都会收到此消息:

无法打开流:HTTP请求失败! HTTP / 1.1 403禁止......

该消息有点长,包含有关我的代码位置的信息,但这部分是突出我的部分。我想也许公司路由器/防火墙认为我试图根据我一直在使用谷歌搜索垃圾邮件/攻击它们。我想知道我是否会在某个永久性的“黑名单”或类似的东西上,我怎么知道?我并没有想做任何坏事。实际上,我正在做的事情会帮助这家公司,因为我正在做一些有助于产生销售的事情。全部事故:-)我打算稍后给公司打电话询问他们。

2 个答案:

答案 0 :(得分:3)

许多网站阻止来自无法识别自己的用户代理的访问。正确地介绍自己,你可能会得到更好的服务。

ini_set('user_agent', "CharlesUserAgent1.0"); // Anything usually should do as long as it's not blank

编辑:您可能还想查看cURL,它在发出HTTP请求方面比PHP的内置URL fopen包装器做得更好。

答案 1 :(得分:0)

  1. 可能是网站检查了user_agent标头,然后阻止了您的请求。
  2. 某些网址可能有查询字符串,而file_get_contents可能无法像普通浏览器那样执行您的请求,因此您要求的网页可能是实际上被禁止的网页:/
  3. 手动浏览网址,看看是否收到同样的错误