Maison >développement back-end >tutoriel php >Comment récupérer l'URL réelle après la redirection avec file_get_contents() ?

Comment récupérer l'URL réelle après la redirection avec file_get_contents() ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-31 10:43:02913parcourir

How to Retrieve the Actual URL after Redirection with file_get_contents()?

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!

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