Récupération de l'URL réelle après la récupération du fichier avec file_get_contents
Lors de l'utilisation de file_get_contents() pour récupérer le contenu d'un site Web, il est possible que l'URL fournie redirige vers un endroit différent. Bien que cette fonctionnalité puisse être pratique, elle peut également créer le besoin de déterminer l'URL réelle atteinte après la redirection.
Une méthode pour y parvenir consiste à configurer file_get_contents() pour ignorer les redirections. Voici comment procéder :
<code class="php">$context = stream_context_create( array( 'http' => array( 'follow_location' => false ) ) ); $html = file_get_contents('http://www.example.com/', false, $context);</code>
En définissant 'follow_location' sur false dans le contexte du flux, file_get_contents() récupérera le contenu sans suivre automatiquement les redirections.
Après avoir effectué la requête, les en-têtes sont renvoyés pendant la réponse HTTP peut être examiné pour obtenir l'URL finale :
<code class="php">var_dump($http_response_header);</code>
Cela affichera un tableau contenant les en-têtes HTTP, y compris l'en-tête « Location » qui indique l'URL réelle atteinte après toute redirection.
Cette approche s'inspire de la solution fournie sur Stack Overflow dans le fil de discussion "Comment ignorer un en-tête déplacé avec file_get_contents en 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!