ホームページ >バックエンド開発 >PHPチュートリアル >PHP file_get_contents() が外部 URL のロードに失敗するのはなぜですか?

PHP file_get_contents() が外部 URL のロードに失敗するのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-31 20:43:17340ブラウズ

Why is my PHP file_get_contents() Failing to Load External URLs?

PHP の外部 URL 読み込みを有効にする方法 file_get_contents()

PHP 関数 file_get_contents() を使用すると、ファイルまたは URL のコンテンツを取得できます。ただし、場合によっては、外部 URL の取得に失敗し、空の応答が返されることがあります。この問題は通常、特定の PHP.ini 構成設定が原因で発生します。

PHP.ini 構成の調査

問題のある構成を特定するには、次の設定を確認できます。

  1. allow_url_fopen: この設定は、次のことを制御します。 PHP は外部 URL にアクセスできます。 「オン」に設定されていることを確認します。
  2. file_get_contents.allow_http: この設定では、file_get_contents() が HTTP URL にのみアクセスするように制限されます。 「オン」に設定されていることを確認してください。
  3. file_get_contents.readfile_disable: この設定により、file_get_contents() がサーバー上のローカル ファイルにアクセスする機能が無効になります。ローカル URL と外部 URL の両方にアクセスする場合は、「オフ」に設定します。

外部 URL をロードするための代替方法

PHP を調整する場合。 ini 設定では問題は解決されません。別の方法を使用して外部 URL をロードすることを検討できます。 PHP:

  1. cURL: CURL は、URL からデータを送信および取得するためのより堅牢な方法を提供するライブラリです。以下のスニペットは、cURL を使用して外部 URL のコンテンツを取得する方法を示しています:
function get_content($URL) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $URL);
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
}

echo get_content('http://example.com');

以上がPHP file_get_contents() が外部 URL のロードに失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。