【问题标题】:get url content PHP [duplicate]获取网址内容PHP [重复]
【发布时间】:2012-07-06 23:03:40
【问题描述】:

我想将 URL 的内容放在一个字符串中并对其进行处理。但是,我有一个问题。

我收到此错误:

Warning: file_get_contents(http://www.findchips.com/avail?part=74ls244) [function.file-get-contents]: failed to open stream: Redirection limit reached,

我听说这是由于页面保护和标题、cookie 和其他东西。 我怎样才能覆盖它?

我也尝试过 fread 和 fopen 等替代方法,但我想我只是不知道该怎么做。

谁能帮帮我?

【问题讨论】:

  • 致所有回答的人:这都不是修复重定向循环的解决方案。或者展示如何正确配置 PHP 以提高限制。

标签: php url curl file-get-contents


【解决方案1】:

尝试改用cURL。 cURL 实现了一个 cookie jar,而 file_get_contents 没有。

【讨论】:

  • 你能给我一个例子,说明我如何使用 cURL 获取 url 的内容吗?我对 php.net 的示例有疑问
【解决方案2】:

使用cURL

通过phpinfo();检查你是否拥有它

对于代码:

function getHtml($url, $post = null) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    if(!empty($post)) {
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    } 
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}

【讨论】:

  • 这条线是干什么用的? curl_setopt($ch, CURLOPT_POST, true);
  • 不,这样不行
【解决方案3】:

原答案移至this topic

【讨论】:

  • 为什么 curl 是“更好的方式”?这些原因是绝对的还是相对于要求的?谢谢:)
  • 上述链接中存在相互矛盾的信息:“FWIW 在速度方面几乎没有区别。我刚刚完成了 5,000 个 URL 并将它们的 HTML 保存到文件中(每个文件大约 200k)。我做了一半用 curl 和 half 用 file_get_contents 作为实验,没有明显的区别。”和后续评论“我在 5.3 和 5.4 上对两者进行了基准测试,cURL 仍然比 file_get_contents 快得多,尤其是对于同一请求的多次调用。” vs “几年前我对两者进行了基准测试,CURL 更快。”...
  • 您先生今天救了我,谢谢您的善举!
  • @tazo todua 如何获取 html 文本,当我运行此示例时,它会显示整个网站视图。
猜你喜欢
  • 1970-01-01
  • 2013-10-09
  • 1970-01-01
  • 1970-01-01
  • 2011-05-10
  • 2011-10-21
  • 2012-08-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多