ホームページ > バックエンド開発 > PHPチュートリアル > PHP の「file_get_contents()」関数がリモート サーバーで HTTP 403 Forbidden エラーをスローするのはなぜですか?

PHP の「file_get_contents()」関数がリモート サーバーで HTTP 403 Forbidden エラーをスローするのはなぜですか?

Mary-Kate Olsen
リリース: 2024-10-30 05:58:27
オリジナル
595 人が閲覧しました

Why Is My PHP `file_get_contents()` Function Throwing an HTTP 403 Forbidden Error on Remote Servers?

PHP の file_get_contents() がリモート サーバーで HTTP 403 Forbidden Error で失敗する

PHP の file_get_contents() 関数を使用してリモート Web からコンテンツを取得する場合ページをローカルで動作させても、サーバー上で HTTP 403 Forbidden エラーが発生する場合があります。この問題のトラブルシューティングを行うには、次の点を考慮してください。

1. PHP ユーティリティによるデバッグ

PHP には、次のようなデバッグ オプションが用意されています。

  • $http_response_header 変数: 各 file_get_contents() 呼び出しの後に応答 HTTP ヘッダーを保存します。
  • ignore_errors コンテキスト オプション: 実際の応答を取得して、403 エラーの理由を明らかにします。

2.不足している HTTP ヘッダーへの対処

リクエストには、Referer や User-Agent などの必須 HTTP ヘッダーが不足している可能性があります。ほとんどのブラウザは次のユーザー エージェントを使用します:

  • Chrome: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML、Gecko など) Chrome/50.0.2661.102 Safari/537.36
  • Firefox: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0

3.ユーザー エージェントの偽装

stream_context_create() を使用して、偽のユーザー エージェントでコンテキストを作成できます。

<code class="php">$context = stream_context_create(
    array(
        "http" => array(
            "header" => "User-Agent: <Your User Agent>"
        )
    )
);

echo file_get_contents("www.google.com", false, $context);</code>
ログイン後にコピー

このリクエストはユーザー エージェントを偽装し、指定されたユーザー エージェントに送信します。 URL.

参照:

  • [stream_context_create()](https://www.php.net/manual/en/function.stream-context -create.php)

以上がPHP の「file_get_contents()」関数がリモート サーバーで HTTP 403 Forbidden エラーをスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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