Heim >Backend-Entwicklung >PHP-Tutorial >Warum wirft meine PHP-Funktion „file_get_contents()' einen HTTP 403 Forbidden-Fehler auf Remote-Servern aus?

Warum wirft meine PHP-Funktion „file_get_contents()' einen HTTP 403 Forbidden-Fehler auf Remote-Servern aus?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-30 05:58:27576Durchsuche

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

PHPs file_get_contents() schlägt mit HTTP 403 Forbidden Error auf Remote-Server fehl

Bei Verwendung der PHP-Funktion file_get_contents() zum Abrufen von Inhalten aus dem Remote-Web Seiten können Sie möglicherweise auf einen HTTP 403 Forbidden-Fehler auf Ihrem Server stoßen, obwohl er lokal funktioniert. Um dieses Problem zu beheben, beachten Sie Folgendes:

1. Debuggen mit PHP-Dienstprogrammen

PHP bietet Debugging-Optionen, wie zum Beispiel:

  • Variable $http_response_header: Speichert Antwort-HTTP-Header nach jedem Aufruf von file_get_contents().
  • ignore_errors-Kontextoption: Ermöglicht das Abrufen der tatsächlichen Antwort, die den Grund für den 403-Fehler offenlegt.

2. Adressierung ohne HTTP-Header

Ihrer Anfrage fehlt möglicherweise ein erforderlicher HTTP-Header, z. B. Referrer oder User-Agent. Die meisten Browser verwenden die folgenden Benutzeragenten:

  • Chrome: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, wie 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. Gefälschter Benutzeragent

Sie können stream_context_create() verwenden, um einen Kontext mit einem gefälschten Benutzeragenten zu erstellen:

<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>

Diese Anfrage fälscht den Benutzeragenten und sendet ihn an die angegebene Adresse URL.

Referenzen:

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

Das obige ist der detaillierte Inhalt vonWarum wirft meine PHP-Funktion „file_get_contents()' einen HTTP 403 Forbidden-Fehler auf Remote-Servern aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn