Regex : validité d'une url absolue ou relative

totofweb Messages postés 57 Date d'inscription mercredi 18 septembre 2002 Statut Membre Dernière intervention 19 juin 2006 - 16 juin 2003 à 17:15
cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 - 14 mars 2005 à 08:42
Salut
Je fais mon module de bbcode, et je dois remplacer [lien=monurl.php] ou [lien=http://www.monurl.com/index.php?id=4] par [[l'url qui a été trouvée]

j'ai essayé ceci :

$texte = ereg_replace("\[lien=[[:alpha:][:digit:][\.\?:&/]]+\]", "]", $texte);

Mais cela ne marche pas (j'ai essayé avec index.php)

On doit pouvoir accpeter les minuscules, majuscules, chiffres, ".", "?", ":", "?", "&", "/" (j'en ai peut-être oublié)

Merci
Totof :)
[mailto: totofwebcreation@hotmail.com]

2 réponses

kzimir666 Messages postés 44 Date d'inscription dimanche 27 avril 2003 Statut Membre Dernière intervention 24 septembre 2006
27 juin 2003 à 17:03
J'essaye de faire la même chose, j'ai réussi avec ceci :
<?php
$message = preg_replace('/\[url=(http:\/\/|)(.+)\](.+)\[\/url\]/', '\\3', $message);
?>
Cependant, quand on met plusieurs liens à la suite, ben ça déconne grave... Je sait pas pkoi mais j'essaye de corriger ça...

Un débutant en PHP, petit mais costaud !
Mon site : VirtuaCLIK
0
cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 5
14 mars 2005 à 08:42
Cette réponse vient très tard, mais c'est tout a fait normal que ca merdouille avec plusieurs url, du au fait que tu mets des (.+), qui cherchent a matcher les chaines les plus longues possibles. Tu peux soit mettre (.+?), soit utiliser le modificateur "Ungreedy" qui rend non gourmands les metacaractères d'occurence :]
PaDa
0
Rejoignez-nous