ブラウザ アクセスにもかかわらず file_get_contents() で発生する 500 エラーのトラブルシューティング
PHP の file_get_contents() 関数を使用して Web コンテンツを取得しようとすると、次のような問題が発生する可能性があります。 500 内部サーバー エラー。ただし、Web ブラウザで同じサイトにアクセスしても問題がない場合があります。この不一致は、潜在的な問題を浮き彫りにします。
この問題をトラブルシューティングするには、代替アプローチとして cURL を採用しました。ただし、cURL を利用すると、「オブジェクト参照がオブジェクトのインスタンスに設定されていません。」という別のエラー メッセージが生成されるようです。
この問題に対する考えられる解決策は、次の回避策を利用することです:
<code class="php">$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);</code>
この回避策は、カスタムの User-Agent ヘッダーを設定することでブラウザー エージェントのリクエストをシミュレートすることを目的としています。 Web サーバーがブラウザとスクリプトのリクエストを区別している場合、これで問題が解決する可能性があります。
この回避策が失敗した場合は、サーバーの設定により HTTPS リソースへのアクセスが許可されていない可能性があります。 HTTPS リクエストを有効にするには、サーバー設定を適宜調整する必要がある場合があります。
以上がWeb サイトがブラウザに読み込まれるときに、PHP の「file_get_contents()」が 500 エラーを返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。