Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks
Bibliothèques et frameworks Forum d'entraide sur les frameworks, templates, bibliothèques de code (PDFLib, eZPdf, JpGraph, Artichow, PEAR, etc). Avant de poster : FAQ bibliothèques, toutes les FAQ PHP et cours bibliothèques
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/01/2008, 12h01   #1
Membre confirmé
 
Avatar de Mogwaï
 
Inscription : mai 2004
Messages : 247
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : mai 2004
Messages : 247
Points : 243
Points : 243
Envoyer un message via MSN à Mogwaï
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 !
Mogwaï est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2008, 13h31   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
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 :
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2008, 14h04   #3
Membre confirmé
 
Avatar de Mogwaï
 
Inscription : mai 2004
Messages : 247
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : mai 2004
Messages : 247
Points : 243
Points : 243
Envoyer un message via MSN à Mogwaï
Julp, en appliquant votre première proposition, j'obtiens ceci :
Code :
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 !
Mogwaï est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2008, 15h23   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Citation:
Envoyé par Mogwaï Voir le message
Julp, en appliquant votre première proposition, j'obtiens ceci :
Code :
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) ?
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2012, 21h24   #5
Invité régulier
 
Inscription : avril 2008
Messages : 25
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 25
Points : 5
Points : 5
Je pense que cette réponse peut t'intéresser :
en faisant un
Code :
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...
john anderta est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h11.


 
 
 
 
Partenaires

Hébergement Web