file_get_content($ url)与直接访问之间的区别

时间:2014-05-05 10:45:13

标签: php file-get-contents

我想要用户输入的网页的源代码。我们可以使用file_get_contents来获取它。

但是在使用file_get_contents时它会给出:

Warning: file_get_contents(http://www.google.com): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /var/www/html/scrap/yelp/simple_html_dom.php on line 75

如果我从浏览器打开相同的网址,它会正确打开。谷歌的人如何使用file_get_content或浏览器进行查询?

更新:我也试过curl,但仍然是同样的错误

3 个答案:

答案 0 :(得分:1)

我的建议是您要解析的网站已阻止不需要的请求,请尝试使用cUrl library

答案 1 :(得分:1)

使用useragent尝试CURL

function get_web_page( $url ){

    $options = array(
            CURLOPT_RETURNTRANSFER  => true,
            CURLOPT_HEADER          => false,
            CURLOPT_FOLLOWLOCATION  => true,
            CURLOPT_USERAGENT       => "Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Firefox/31.0",
            CURLOPT_SSL_VERIFYPEER  => false,

        );

        $ch      = curl_init( $url );
        curl_setopt_array( $ch, $options );
        $content = curl_exec( $ch );
        curl_close( $ch );

        return $content;
}

echo get_web_page("http://www.google.com");

答案 2 :(得分:0)

嘿它会工作正常问题是你的代码错了。

file_get_contents('http://www.google.com');

使用它会起作用。 如果你想要任何其他帮助,请告诉我。