35
$html = file_get_contents("https://www.[URL].com"); 
echo $html;

エラーログでこれを生成します:

PHP 警告: file_get_contents(https://www.[URL].com) [function.file-get-contents]: ストリームを開くことができませんでした: HTTP 要求が失敗しました! /Applications/MAMP/htdocs/test.php の 13 行目の HTTP/1.1 500 内部サーバー エラー";

ただし、サイトはブラウザで正常に動作します。

cURLも使ってみました。ログファイルにエラーはありませんが、$htmlエコーが表示されます:

「/」アプリケーションでサーバー エラーが発生しました。
オブジェクト参照がオブジェクト インスタンスに設定されていません。

...その他のデバッグ情報

これを回避する方法はありますか?

4

2 に答える 2

78

この回避策を試してください:

$opts = array('http'=>array('header' => "User-Agent:MyAgent/1.0\r\n"));
$context = stream_context_create($opts);
$header = file_get_contents('https://www.example.com',false,$context);

これでうまくいかない場合は、https から読み取れないのでしょうか。

于 2012-05-09T22:08:37.577 に答える
5

ヘッダーにさらにデータを入力する必要がありました。

$opts = array('http' => array(
    'method' => "GET",
    'header' => "User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0\r\n"
    . "Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n"
    . "Accept-Encoding:gzip, deflate\r\n"
    . "Accept-Language:cs,en-us;q=0.7,en;q=0.3\r\n"
    . "Connection:keep-alive\r\n"
    . "Host:your.domain.com\r\n"
    ));
$context = stream_context_create($opts);
$html = file_get_contents($sap_url, FALSE, $context);
于 2015-05-19T13:05:15.683 に答える