【问题标题】:Why I can't get website content using CURL为什么我无法使用 CURL 获取网站内容
【发布时间】:2012-01-02 03:34:25
【问题描述】:

我真的很困惑。我的问题是我无法使用 curl 获取网站内容 我试图显示结果,但它总是相同的结果,它总是返回一个空字符串..

这是我的功能:

function get_html_content($url, $timeout=10) {
    // fake user agent
    $userAgent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2';

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);
    //curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    $string = curl_exec($ch);
    curl_close($ch);

    return $string;
}

我上面的代码有什么问题吗,因为每当我尝试上面的代码时,它总是返回一个空字符串。

【问题讨论】:

  • 我将您的代码复制到了我服务器上的测试文件中,它可以工作。确定您是 echoing 返回的结果吗?
  • 是的,我愿意。这是我调用上述函数的代码 $result = get_html_content('google.com');回声 $result;
  • oops sorry,我已经知道问题了。。我忘记了我连接的网络正在使用代理,而且它似乎被代理过滤了。我添加了 CURLOPT_PROXY 并插入我的办公室代理设置,上面的代码工作..感谢您的快速响应:)
  • 嗨约瑟夫,如何删除这个问题/将此问题标记为已回答
  • @KiraYamato 请回答您自己的问题,然后将其标记为accepted

标签: php curl


【解决方案1】:

如cmets中所述,添加

CURLOPT_PROXY

通过适当的代理设置解决了这个问题。

【讨论】:

    猜你喜欢
    • 2010-10-23
    • 1970-01-01
    • 2016-05-28
    • 1970-01-01
    • 2017-07-25
    • 1970-01-01
    • 1970-01-01
    • 2019-07-01
    • 2015-02-12
    相关资源
    最近更新 更多