IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[cURL] Récupérer url redirection 302 sans la suivre


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre actif Avatar de Mogwaï
    Inscrit en
    Mai 2004
    Messages
    247
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2004
    Messages : 247
    Points : 278
    Points
    278
    Par défaut [cURL] Récupérer url redirection 302 sans la suivre
    Bonjour,

    J'accède à une url grace à PHP dont je sais qu'elle redirige forcément vers une autre page, grace à une redirection 302.
    J'aimerais pouvoir récupérer l'url de la page de destination sans pour autant la suivre.

    Si j'active l'option CURLOPT_FOLLOWLOCATION, curl va suivre la redirection et ouvrir la page de destination, mais ce n'est pas ce que je veux.

    Si je la désactive, je récupére bien le status 302, mais impossible de savoir vers quelle url devait se faire la redirection...

    Comment faire ? J'ai simplement besoin d'avoir l'url de destination sans l'ouvrir... C'est quelque chose que je sais faire avec fsockopen mais pas avec curl...
    Etre à son compte, y'a rien de mieux !

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    La fonction curl_getinfo (par la valeur CURLINFO_EFFECTIVE_URL), ne vous donnera pas cette information, puisque son but est de donner la dernière URL effective. Par contre je pense qu'il y a deux options :

  3. #3
    Membre actif Avatar de Mogwaï
    Inscrit en
    Mai 2004
    Messages
    247
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2004
    Messages : 247
    Points : 278
    Points
    278
    Par défaut
    Julp, en appliquant votre première proposition, j'obtiens ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string(20) "HTTP/1.1 302 Found
    Bizarrement, aucune autre information n'est disponible...

    De la même façon, en activant CURLOPT_RETURNTRANSFERT, j'obtiens une chaine vide... Pourtant je l'utilise sur d'autres pages avec status 200 et celà me renvoie bien la page...

    Edit : je viens d'analyse la redirection directement avec Internet Explorer et HTTPWatch et il semblerait que le header contienne :
    au lieu de
    Curl aurait-il un problème avec cette syntaxe ?
    Etre à son compte, y'a rien de mieux !

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Citation Envoyé par Mogwaï Voir le message
    Julp, en appliquant votre première proposition, j'obtiens ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string(20) "HTTP/1.1 302 Found
    Bizarrement, aucune autre information n'est disponible...
    Désolé, vous avez raison, cette proposition ne donne pas le nom de la page que nous sommes invités à suivre (cette suggestion faisant suite à une mauvaise manipulation de ma part ).

    Ça dépend qui effectue la redirection (PHP ou autres contre le serveur) en fait. Est-ce qu'en rajoutant l'option CURLOPT_HEADER (à valeur vraie), vous trouvez bien l'entête Location parmi le texte renvoyé par l'exécution de la requête (ie le résultat de la fonction curl_exec) ?

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Informaticien Free-Lance
    Inscrit en
    Avril 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Informaticien Free-Lance
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2008
    Messages : 54
    Points : 33
    Points
    33
    Par défaut
    Je pense que cette réponse peut t'intéresser :
    en faisant un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print_r(curl_getinfo($ch));
    ou $ch est ton objet curl.
    tu vas voir que dans le tableau de retour tu as une ligne url qui te donne la redirection vers une autre page. ainsi tu peux parser cette ligne voir si tu retrouve ton url de redirection...

Discussions similaires

  1. curl : récupérer contenu url - résultat aléatoire
    Par pop_up dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 02/06/2015, 14h18
  2. Http, redirection: récupérer URL finale
    Par GoustiFruit dans le forum Web & réseau
    Réponses: 2
    Dernier message: 19/03/2013, 06h27
  3. Redirection erreur 404 => récupérer url demandée
    Par Le_PounK dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 21/03/2007, 16h32
  4. [JTree] Récupérer le noeud sélectionné, sans événement
    Par Bobsinglar dans le forum Composants
    Réponses: 4
    Dernier message: 26/05/2005, 18h06
  5. [String] Récupérer une sous -chaîne sans split
    Par Crazyblinkgirl dans le forum Langage
    Réponses: 3
    Dernier message: 19/07/2004, 14h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo