le_fleau Posté 1 Septembre 2006 Partager Posté 1 Septembre 2006 Bonsoir à tous, Voici un petit problème que je n'arrive pas à résoudre... J'ai une fonction qui doit transformer les URL en liens cliquables et une fonction de BBCode pour la balise image. Or, la balise [ IMG ] peut contenir ... une URL. et ma première fonction transforme alors l'url de l'image en lien clicable ; ce qui donne des : <img src="<a href="http://site.com/image.gif"> alt="" /> ... comment résoudre ce problème ? Voici les lignes de code, dans l'ordre (PS : j'ai ajouté un espace après img dans la balise BB pour pouvoir poster sur ce forum) function rogneurl1($url) { $nb = strlen($url[0]); $link = ($nb > 50) ? substr($url[0], 0, 50)."(...)" : $url[0]; $lien = '<a href="'.$url[0].'">'.$link.'</a>'; return $lien; }function rogneurl2($url) { $nb = strlen($url[4]); $link = ($nb > 50) ? substr($url[4], 0, 50)."(...)" : $url[4]; $lien = $url[2].'<a href="http://www.'.$url[4].'">www.'.$link.'</a>'; return $lien; }function ck($img) { ini_set('allow_url_fopen', '1'); $image=''; if (@fclose(@fopen($img[1], 'r'))) { $tab = getimagesize($img[1]); // on récupère la taille de l'image $width = ($tab[0] > 370) ? ' width="370"' : ''; $image = '<img src="'.$img[1].'"'.$width.' alt="Image Utilisateur" />'; } return $image; } function bbcode($chaine) { $chaine = preg_replace_callback('#\[img ](.+?)\[/img ]#si','ck',$chaine); $chaine = preg_replace_callback("`(((ftp://)|(http(s?)://))(([[:alnum:]]|[-\%\.\?\=\#\_\:\&\/\~\+\@\,\;])*))`i",'rogneurl1',$chaine); $chaine = preg_replace_callback("`(([^/])www\.|(^www\.))(([[:alnum:]]|[-\%\.\?\=\#\_\:\&\/\~\+\@\,\;])*)`i",'rogneurl2',$chaine); } ?> Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 2 Septembre 2006 Partager Posté 2 Septembre 2006 Il suffirait d'appeller la fonction BBCode avant ta fonction, au lieu de l'appeller après, non ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
le_fleau Posté 2 Septembre 2006 Auteur Partager Posté 2 Septembre 2006 Merci Dan, mais j'ai mis la fonction de bbcode img avant la transformation des urls ... ensuite, il y a d'autre fonctions bbcode qui celles ci doivent etre placées apres la transformation des url, mais je ne les ai pas retranscrites dans mon post. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant