调用file_get_contents(以及simple_html_dom)时返回HTTP_ACCESS

时间:2013-04-26 17:28:23

标签: php http file-get-contents simple-html-dom

我试图以这种方式获取页面的内容:

<?php
include_once 'simple_html_dom.php'; 
        $opts = array('http' =>
            array(
                    'method'  => 'GET',
                    'timeout' => 10
            )
    );
    $domain = "http://www.esperandoaramon.com";
    //$domain = "http://www.google.com";
    $context  = stream_context_create($opts);
    $input = @file_get_contents($domain,false,$context) or die("Could not access file:    $domain");
    echo($input);
?>

我可以通过这种方式获取www.google.com内容,不幸的是,其他域名仅向我发送此通知:

Notice:
Text: Undefined index: HTTP_ACCEPT
File: /home/trdeport/public_html/esperandoaramon/_visit.php
Line: 4

这个HTTP_ACCEPT正在扼杀我...页面在浏览器上运行完美。有没有解决方法?

1 个答案:

答案 0 :(得分:1)

似乎问题出在另一端的网站上,而不是你的脚本。我怀疑其他网站需要一个Accept标头,当它没有标头时,它会失败(它适用于您的浏览器,因为浏览器总是发送该标头。)尝试在您的流上下文选项中设置它: / p>

$opts = array(
    'http' => array(
        'method' => 'GET',
        'timeout' => 10,
        'header' => "Accept: text/html\r\n"
    )
);