le_fleau Posté 1 Septembre 2006 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); } ?>
Dan Posté 2 Septembre 2006 Posté 2 Septembre 2006 Il suffirait d'appeller la fonction BBCode avant ta fonction, au lieu de l'appeller après, non ?
le_fleau Posté 2 Septembre 2006 Auteur 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.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant