2010-11-10 5 views
0

Im en utilisant des déclarations préparées à désembrouiller BBcode mais pour une raison quelconque, il met \ avant » lors de la publication. Je ne sais pas quelles sont les causes, mais je suis sûr que cela se produit quand je change le BBcode en html à mettre dans la base de données, le code ressemble à ceci:Déclaration préparée met avant «

$text = $membership->remove_HTML($text); 


    //convert line breaks to <br /> tags. 
     $text = nl2br($text); 

     //cleans up by removing white space. 
     $text = trim($text); 

     //now lets replace things BASIC EDITOR 
     $text = preg_replace("/\[b\](.*)\[\/b\]/", "<strong>\\1</strong>", $text); 
     $text = preg_replace("/\[i\](.*)\[\/i\]/", "<em>\\1</em>", $text); 
     $text = preg_replace("/\[u\](.*)\[\/u\]/", "<span style='text-decoration:underline;'>\\1</span>", $text); 
     $text = preg_replace("/\[s\](.*)\[\/s\]/", "<del>\\1</del>", $text); 

     $text = preg_replace("/\[url\](.*)\[\/url\]/", "<a target='_blank' href='\\1'>\\1</a>", $text); 
     $text = preg_replace("/\[url=(.*)\](.*)\[\/url\]/", "<a target='_blank' rel='\\1' href='\\1'>\\2</a>", $text); 

     //now lets replace MORE things EXPANDED EDITOR 
     $text = preg_replace("/\[img\](.*)\[\/img\]/", "<img>\\1</img>", $text); 
     $text = str_ireplace("[hr]","<hr>", $text); 
     $text = preg_replace("/\[justify\](.*)\[\/justify\]/", "<p style='text-align:justify;'>\\1</p>", $text); 
     $text = preg_replace("/\[center\](.*)\[\/center\]/", "<p style='text-align:center;'>\\1</p>", $text); 
     $text = preg_replace("/\[left\](.*)\[\/left\]/", "<p style='text-align:left;'>\\1</p>", $text); 
     $text = preg_replace("/\[right\](.*)\[\/right\]/", "<p style='text-align:right;'>\\1</p>", $text); 
     $text = preg_replace("/\[h1\](.*)\[\/h1\]/", "<h4>\\1</h4>", $text); 
     $text = preg_replace("/\[h2\](.*)\[\/h2\]/", "<h5>\\1</h5>", $text); 
     $text = preg_replace("/\[h3\](.*)\[\/h3\]/", "<h6>\\1</h6>", $text); 

     $updatenews = $mysql->add_news($_SESSION['user'][0], $headline, $text, $time); 
+0

AAAGGHHH MES YEUX !! QU'EST-CE QUE CE PARSING !? QU'EST-CE QUE ÇA VEUT DIRE!? – metrobalderas

+0

Juste un point d'intérêt, vous voudrez peut-être vérifier les fonctions BBCode. http://fr.php.net/manual/fr/book.bbcode.php – Aether

Répondre

0

La chose la plus rapide pour vérifier est de faire des devis Magic PHP vous sont disabled.

Si vous ne voulez pas vous tromper avec votre configuration PHP, vérifiez si les barres obliques sont présentes avant de lancer $text via cette série de preg_replaces().

+0

merci! J'ai modifié mon fichier ini et maintenant tout fonctionne bien. –