Récupérer l'URL à partir d'une URL raccourcie

Eléphanteau du PHP | 10 Messages

09 juil. 2014, 22:03

Bonjour à tous,

J'écris un script qui récupère des URL raccourcies.
Ce que j'aurais aimé, c'est que le script simule l'envoi de l'URL raccourcie dans le navigateur, et me donne la "vraie" URL correspondante - et ce pour chaque URL bien sûr puisque je boucle.

Je suis quasi-sûr que ça doit être possible, mais je ne sais pas comment faire.

Quelqu'un pourrait-il m'aider ?

Un grand merci.

Mammouth du PHP | 1339 Messages

10 juil. 2014, 00:13

Hello,
J'ai pas bien compris ce que tu cherche a faire ?

Tu as http://by.tk/urlRacourcie et http://www.lurlvienlongue.com/que/tu/as/remplace.html et toi tu voudrais faire quoi ?

On peut faire pas mal de truc en fait ... Le JavaScript rentrera surement en compte mais déjà faudrait que je comprenne !

Elie
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Eléphanteau du PHP | 10 Messages

17 juil. 2014, 00:32

Bonjour et merci de ta réponse,

En fait le script que j'ai fait parcourt des pages que je lui rentre en paramètres, et dans ces pages il rencontre des url raccourcies, et les stocke.
Ce que j'aimerais, c'est que pour chaque url raccourcie, le script récupère l'url "longue" et la stocke (plutôt que l'url raccourcie).
Donc ce qu'il faudrait c'est trouver un moyen pour que le script "simule" qu'il envoie l'url raccourcie au navigateur, et ensuite récupère l'url longue que le navigateur renvoie.
Est-ce que c'est plus clair maintenant ?

Ce n'est pas évident à expliquer, j'essaie de faire au mieux !

Merci en tout cas de ton aide.

ViPHP
xTG
ViPHP | 7331 Messages

17 juil. 2014, 07:49

Je ne suis pas sûr que cela soit très simple.
Déjà une seule solution selon moi c'est de se tourner vers la librairie Curl.
Mais les urls courtes affichent souvent des pages de pubs avant de rediriger vers l'url longue.
Or dans ce cas là c'est du javascript qui fait la redirection et donc à moins de récupérer le code source et de le parser pour trouver l'url longue...
Pour les urls directes il faut regarder si Curl permet de récupérer les entêtes HTTP retournées (et là tu auras un code HTTP de redirection et une url longue).

Eléphanteau du PHP | 10 Messages

17 juil. 2014, 16:01

En effet, c'est à Curl que je pensais, mais je ne sais pas trop comment ça marche, tu pourrais me donner un exemple de code qui ferait ça ?
Pas de souci avec les pubs, je sais qu'il n'y en n'a pas, donc pas de Javascript à envisager.

Tu veux bien me guider un peu s'il te plaît ?

ViPHP
xTG
ViPHP | 7331 Messages

17 juil. 2014, 19:17

Je n'ai jamais utilisé cette librairie, ni même suivi de pratique.
Je sais juste qu'elle permet d'attaquer des urls côté serveur et donc qu'elle pourrait convenir à ce que tu cherches.
Va voir la documentation php, elle est souvent très fourni en exemple. :)

Eléphanteau du PHP | 10 Messages

18 juil. 2014, 16:28

Je viens de regarder et j'ai trouvé des exemples commentés, mais apparemment avec cette librairie je peux récupérer le code d'une page donnée, ou simuler l'envoi d'un "POST" mais je ne sais pas si j'ai la possibilité de récupérer l'URL qaui m'intéresse...
Est-ce que ça serait vraiment ça la solution à mon problème ?

Eléphanteau du PHP | 10 Messages

18 juil. 2014, 17:04

En fait je crois avoir finalement trouvé avec Curl et je suis en train de travailler sur un script de test - et si ça marche je l'incluerai dans mon script.
Souci: L'initialsation Curl se fait bien, mais curl_exec semble me retourner une erreur (ça retourne false).
J'essaie d'utiliser curl_error pour avoir une idée de l'erreur en question, mais echo curl_error($curl) ne me retourne rien...
Conclusion mon script de test ne fonctionne pas...
Une idée de comment je peux savoir ce qui bloque ?

ViPHP
xTG
ViPHP | 7331 Messages

18 juil. 2014, 17:20

Montres nous ton script de test.
Sinon je pense que ce n'est pas le code source retourné qu'il te faut regarder mais l'entête HTTP retournée (qui doit contenir la redirection).

Eléphanteau du PHP | 10 Messages

18 juil. 2014, 17:35

Oui c'est ça, c'est l'en-tête. Mais pour l'instant je galère avec curl_exec...
Pour ne pas tout mélanger j'ai ouvert un autre topic ici:
php-avance/script-test-curl-t271617.html

Horacio91
Invité n'ayant pas de compte PHPfrance

08 févr. 2015, 20:06

Bonjour,
J'ai lu ce post aujourd'hui, car je cherchais une réponse à la question.
Finalement, j'ai réglé le problème en utilisant la fonction "file()".
Voici le code:

Code : Tout sélectionner

<?php $Lignes = file('chemin/vers/votre/raccourci_internet'); //exemple: /monraccourci.url foreach( $Lignes as $value ){ $valeur = $value; if (strtoupper(substr ($valeur, 0,3))) == 'URL'){ $lien = substr($valeur,4); // echo "<br> URL: $lien <br>"; break; } } ?>
Il y a surement d'autres méthodes, mais celle-ci fonctionne.
:D