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

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

DDD
DDDオリジナル
2024-12-06 02:46:14642ブラウズ

Why is my PHP file_get_contents() failing to retrieve external URLs?

外部 URL に関する PHP ini file_get_contents の問題

file_get_contents() 関数を使用すると、PHP は、次の場所にあるファイルを含むファイルのコンテンツを取得できます。外部 URL。ただし、場合によっては、外部 URL にアクセスしようとすると関数が空の結果を返すという問題が発生することがあります。

PHP.ini 構成の競合の可能性

この問題は、PHP.ini 設定、特に外部 URL アクセスを制限する設定に関連している可能性があります。問題の原因を特定するには、関連する構成オプションを特定する必要があります。

  • allow_url_fopen: このオプションは、PHP が URL を開けるかどうかを制御します。 0 (無効) に設定されているかどうかを確認します。これにより、関数は外部コンテンツにアクセスできなくなります。
  • allow_url_include:allow_url_fopen と同様に、このオプションにより、PHP は URL からファイルを読み取ることができます。 1 (有効) に設定されていることを確認します。
  • safe_mode: セーフ モードでは、URL アクセスなどの特定の PHP 機能が制限されます。 php.ini でセーフ モードが無効 (オフに設定) になっていることを確認します。

代替アプローチ: cURL を使用する

PHP.ini 設定を変更できない場合オプションの回避策は、cURL ライブラリを使用して、次の機能を模倣することです。 file_get_contents():

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');

この関数は、cURL ハンドルを初期化し、必要なオプションを設定し、リクエストを実行して、指定された URL のコンテンツを返します。

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

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