[resolu]preg_replace petit soucis

preg_replace petit soucis [resolu] - PHP - Programmation

Marsh Posté le 10-12-2003 à 13:16:30    

Bonjour j'ai un petit soucis avec la fonction preg_replace
 
Je suis en train de faire un forum et j'aimerais pouvoir mettre du texte en gras en italique des smiley etc..
 
j'ai donc une fonction format qui resemble à ca :  
 

Citation :


function format($texte)
{
 $texte = ereg_replace('<', '&lt;', $texte);
 $texte = ereg_replace('>', '&gt;', $texte);
 
 $texte = nl2br($texte);
 $texte = stripslashes($texte);
 
$texte = preg_replace("/(.*?)/si", "<B>\1</B>", $texte);
 $texte = preg_replace("/(.*?)/si", "<I>\1</I>", $texte);
 $texte = preg_replace("/(.*?)/si", "<u>\1</u>", $texte);
 $texte = preg_replace("/(.*?)/si", "<s>\1</s>", $texte);
 $texte = preg_replace("/[droite](.*?)[/droite]/si", '<div align="right">\1</div>', $texte);
 $texte = preg_replace("/[gauche](.*?)[/gauche]/si", '<div align="left">\1</div>', $texte);
 $texte = preg_replace("/[centre](.*?)[/centre]/si", '<div align="center">\1</div>', $texte);
 $texte = preg_replace("#[url=([a-z]+?://){1}(.*?)](.*?)[/url]#si",'<A HREF="12" TARGET="_blank">3</A>', $texte);
 $texte = preg_replace("#[lurl=(.*?)](.*?)[/lurl]#si",'<A HREF="1">2</A>', $texte);
 $texte = preg_replace("#[mail=(.*?)](.*?)[/mail]#si",'<A HREF="mailto:1">2</A>', $texte);
}


 
donc dans ma page ou je veux afficher un message je met
 

Citation :


<?echo format($data[1]);?>  


sachant que $data[1] est le message dans la base de donnée MySQL
 
et voilà le message d'erreur qu'il me retourne :  
 

Citation :


Warning: Unknown modifier 'b' in /srv/www/htdocs/pole_linux/fonction.php on line 30
 
 Warning: Unknown modifier ']' in /srv/www/htdocs/pole_linux/fonction.php on line 31
 
 Warning: Unknown modifier ']' in /srv/www/htdocs/pole_linux/fonction.php on line 32
 
 Warning: Unknown modifier ']' in /srv/www/htdocs/pole_linux/fonction.php on line 33
 
 Warning: Unknown modifier 'd' in /srv/www/htdocs/pole_linux/fonction.php on line 34
 
 Warning: Unknown modifier 'g' in /srv/www/htdocs/pole_linux/fonction.php on line 35
 
 Warning: Unknown modifier 'c' in /srv/www/htdocs/pole_linux/fonction.php on line 36
 
 Warning: Compilation failed: unmatched parentheses at offset 16 in /srv/www/htdocs/pole_linux/fonction.php on line 38
 


 
quelqun sait pourquoi j'ai cette erreur et comment y remédier?
 
Merci beaucoup..


Message édité par djmacou le 10-12-2003 à 13:33:35
Reply

Marsh Posté le 10-12-2003 à 13:16:30   

Reply

Marsh Posté le 10-12-2003 à 13:21:41    

juste un détail :  
 
le forum (forum.hardware.fr) interprette une partis de mon code et affiche pas tout donc je le redonne:
 

Citation :


function format($texte)
{
 $texte = ereg_replace('<', '&lt;', $texte);
 $texte = ereg_replace('>', '&gt;', $texte);
 
 $texte = nl2br($texte);
 $texte = stripslashes($texte);
 
$texte = preg_replace("/[gras](.*?)[/gras]/si", "<B>\1</B>", $texte);
 $texte = preg_replace("/[it](.*?)[/it]/si", "<I>\1</I>", $texte);
 $texte = preg_replace("/(.*?)/si", "<u>\1</u>", $texte);
 $texte = preg_replace("/[souligne](.*?)[/souligne]/si", "<s>\1</s>", $texte);
 $texte = preg_replace("/[droite](.*?)[/droite]/si", '<div align="right">\1</div>', $texte);
 $texte = preg_replace("/[gauche](.*?)[/gauche]/si", '<div align="left">\1</div>', $texte);
 $texte = preg_replace("/[centre](.*?)[/centre]/si", '<div align="center">\1</div>', $texte);
 $texte = preg_replace("#[url=([a-z]+?://){1}(.*?)](.*?)[/url]#si",'<A HREF="12" TARGET="_blank">3</A>', $texte);
 $texte = preg_replace("#[lurl=(.*?)](.*?)[/lurl]#si",'<A HREF="1">2</A>', $texte);
 $texte = preg_replace("#[mail=(.*?)](.*?)[/mail]#si",'<A HREF="mailto:1">2</A>', $texte);
}


Reply

Marsh Posté le 10-12-2003 à 14:35:45    

Je crois que les références arrières c'est "\\1" et pas "\1" ;)

Reply

Marsh Posté le 10-12-2003 à 21:48:34    

je vais essayer merci bcp....

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed