Maison > développement back-end > tutoriel php > Pourquoi ma fonction PHP `file_get_contents()` génère-t-elle une erreur HTTP 403 interdite sur les serveurs distants ?

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

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