Commen récupérer une url?

Résolu
REMqb Messages postés 23 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 17 mai 2009 - 27 nov. 2006 à 18:30
REMqb Messages postés 23 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 17 mai 2009 - 28 nov. 2006 à 18:04
Bonjour

je voudrais savoir commen récupérer les url d'une variable dans un tableau :

par exemple :

$var="kgkjfkgdfg http://www.site1.com ghigejgjgdskgk http://www.site2.org";

ce qui donnerai dans le tableau

echo $tableau[0]; donnerai à l'exécution http://www.site1.com
et
echo $tableau[1]; donnerai à l'exécution http://www.site2.org

Merci de me répondre.

5 réponses

platon179 Messages postés 237 Date d'inscription lundi 20 mai 2002 Statut Membre Dernière intervention 22 juillet 2011 2
27 nov. 2006 à 22:07
A mon avis tu dois forcément avoir un caractère séparateur entre les différents éléments, sinon c'est pas possible de déterminer une URL... Par exemple, si il y a pas de séparateur : http://www.phpcs.com' target='_blank'>http://www.domaine.tld/tototatatutuhttp://www.phpcs.com
Est-ce que l'URL est http://www.domaine.tld/toto ou http://www.domaine.tld/tototata ?

Sinon pour la première erreur, il manque simplement une parenthèse fermante à la fin :
if(preg_match("(^(https?|ftp):\/\/.*$)", $addr))  {

Le preg_match fonctionne parfaitement, comparé avec le script d'un pote qui fonctionne niquel, et c'est le même :)
3
platon179 Messages postés 237 Date d'inscription lundi 20 mai 2002 Statut Membre Dernière intervention 22 juillet 2011 2
27 nov. 2006 à 18:44
Bonsoir!

Tu as la fonction explode qui permet de découper une chaîne en fonction d'un caractère donné :
$adresses = explode(" ", $var);

Apres, tu dois vérifier que ce sont bien des URLs, par exemple comme ceci (non testé) :

foreach($addr in $adresses)  {
   if(preg_match("(^(https?|ftp):\/\/.*$)", $addr)  {
      $addr_finales[] = $addr;
   }
}

Tes URLs sont dans le tableau $addr_finales. Tu risques cependant d'avoir a modifier le code, c'est pas testé du tout (notamment le premier argument du preg_match :p)
0
platon179 Messages postés 237 Date d'inscription lundi 20 mai 2002 Statut Membre Dernière intervention 22 juillet 2011 2
27 nov. 2006 à 18:50
OOps désolé, coquille dans le foreach, fallait lire

foreach($adresses as $addr)  {
0
REMqb Messages postés 23 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 17 mai 2009
27 nov. 2006 à 21:06
Désolé mais il y a deux petits problèmes :

1 ca ne fonctionne pas (ligne fautive : if(preg_match("(^(https?|ftp):\/\/.*$)", $addr)  {)
2 il n'y a pas forcément des espaces avant les adresses sinon merci de m'avoir répondu   
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
REMqb Messages postés 23 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 17 mai 2009
28 nov. 2006 à 18:04
merci beaucoup ca fonctionne
0
Rejoignez-nous