Pourquoi ma fonction PHP `file_get_contents()` génère-t-elle une erreur HTTP 403 interdite sur les serveurs distants ?

Mary-Kate Olsen
Libérer: 2024-10-30 05:58:27
original
522 Les gens l'ont consulté

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

Échec de file_get_contents() de PHP avec une erreur HTTP 403 interdite sur le serveur distant

Lors de l'utilisation de la fonction file_get_contents() de PHP pour récupérer du contenu à partir d'un site Web distant pages, vous pouvez rencontrer une erreur HTTP 403 Forbidden sur votre serveur même s'il fonctionne localement. Pour résoudre ce problème, considérez les éléments suivants :

1. Débogage avec les utilitaires PHP

PHP fournit des options de débogage, telles que :

  • Variable $http_response_header : stocke les en-têtes HTTP de réponse après chaque appel file_get_contents().
  • Option contextuelle ignore_errors : Permet d'obtenir la réponse réelle, révélant la raison de l'erreur 403.

2. Adresse manquant d'en-tête HTTP

Votre demande peut manquer d'un en-tête HTTP requis, tel que Referer ou User-Agent. La plupart des navigateurs utilisent les agents utilisateurs suivants :

  • Chrome : Mozilla/5.0 (Windows NT 10.0 ; WOW64) AppleWebKit/537.36 (KHTML, comme 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. Faux agent utilisateur

Vous pouvez utiliser stream_context_create() pour créer un contexte avec un faux agent utilisateur :

<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>
Copier après la connexion

Cette requête simulera l'agent utilisateur et l'enverra au spécifié URL.

Références :

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!