Maison >développement back-end >tutoriel php >Comment puis-je obtenir l'URL finale après les redirections lors de l'utilisation de file_get_contents() en PHP ?
Problème : Lors du scraping du contenu à l'aide de file_get_contents(), vous rencontrez des redirections mais souhaitez découvrir la véritable URL .
Solution :
Bien que file_get_contents() gère généralement les redirections, si vous avez explicitement besoin d'un contrôle, utilisez l'approche suivante :
<code class="php">// Disable automatic redirect following $context = stream_context_create([ 'http' => [ 'follow_location' => false ] ]); // Retrieve the content with no redirects $html = file_get_contents('http://www.example.com/', false, $context); // Access the HTTP response headers to determine the actual URL var_dump($http_response_header);</code>
Par en définissant 'follow_location' sur false, vous empêchez file_get_contents() de suivre automatiquement les redirections. Les en-têtes de réponse (disponibles dans $http_response_header) contiendront l'en-tête "Location", indiquant la véritable URL après toute redirection.
Astuce : Cette approche s'inspire de la solution fournie dans Comment faire J'ignore 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!