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

`file_get_contents()` がこのサーバー上の外部 URL の取得に失敗するのはなぜですか?

Patricia Arquette
リリース: 2024-12-13 14:57:11
オリジナル
831 人が閲覧しました

Why is `file_get_contents()` Failing to Retrieve External URLs on This Server?

特定のサーバー上の外部 URL に関する File_get_contents の問題

問題:

PHP 関数 file_get_contents() を使用して取得する場合特定のサーバー上の外部 URL のコンテンツの場合、空の結果が返されます。ただし、この関数はローカルで使用する場合、または同じサーバー上の内部 URL にアクセスする場合は正しく動作します。

考えられる原因:

問題は PHP.ini に関連している可能性があります。構成設定。

解決策:

を決定するにはどの PHP.ini 設定が問題の原因となっているかを確認するには、次の手順に従います:

  1. allow_url_fopen 設定を確認します: この設定は、PHP が fopen ファミリを通じて外部 URL にアクセスできるかどうかを制御します。機能の。 Off に設定されている場合、file_get_contents() は外部 URL からコンテンツを取得できません。

    PHP.ini ファイルで次の行を確認してください:

    allow_url_fopen = Off
    ログイン後にコピー

    「オフ」に設定されている場合は、「オン」に変更します。

  2. チェックを入れますallow_url_include 設定: この設定は、PHP がスクリプトに外部 URL を含めることができるかどうかを制御します。 Off に設定されている場合、file_get_contents() は外部 URL からコンテンツを取得できない可能性があります。

    PHP.ini ファイルで次の行を確認してください:

    allow_url_include = Off
    ログイン後にコピー

    「オフ」に設定されている場合は、「オン」に変更してください。

  3. 代替手段を使用してくださいfunction: 上記の設定で問題が解決しない場合は、代替関数を使用して file_get_contents() の動作を模倣できます。そのような関数の 1 つは、curl_init():

    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');
    ログイン後にコピー
です。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート