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 :
$context = stream_context_create(
array(
'http' => array(
'follow_location' => false
)
)
);
$html = file_get_contents('http://www.example.com/', false, $context);
En définissant 'follow_location' sur false dans le contexte du flux, file_get_contents() récupérera le contenu sans automatiquement après les redirections.
Après avoir effectué la requête, les en-têtes renvoyés lors de la réponse HTTP peuvent être examinés pour obtenir le résultat final URL :
var_dump($http_response_header);
Cela affichera un tableau contenant les en-têtes HTTP, y compris l'en-tête « Emplacement » 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 dans PHP?"
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3