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 ?

Comment puis-je obtenir l'URL finale après les redirections lors de l'utilisation de file_get_contents() en PHP ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-28 09:52:29301parcourir

How Can I Get the Final URL After Redirects When Using file_get_contents() in PHP?

File_Get_Contents : dévoilement de l'URL finale

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!

Déclaration:
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