0

この方法でページのコンテンツを取得しようとしています:

<?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 は私を殺している...ページはブラウザ上で完全に実行されます。回避策はありますか?

4

1 に答える 1

1

問題はスクリプトではなく、相手側のサイトにあるようです。他のサイトはヘッダーを期待しており、Acceptヘッダーがない場合は失敗すると思われます (ブラウザーは常にそのヘッダーを送信するため、ブラウザーで動作します)。ストリーム コンテキスト オプションで設定してみてください。

$opts = array(
    'http' => array(
        'method' => 'GET',
        'timeout' => 10,
        'header' => "Accept: text/html\r\n"
    )
);
于 2013-04-26T18:01:10.280 に答える