code simplifié

Eléphanteau du PHP | 20 Messages

19 nov. 2005, 19:54

Bonjour,

voilà, j'ai créé une fonction pour disposer d'une sorte de "bbcode" pour mon site au niveau des news. J'ai donc inclu le fichier contenant la fonction dans la page actualite.php, mais quand j'affiche la news, le bbcode n'est pas traduit en html. Pareil quand j'entour le résultat, bbcode($donnees['contenu']), le bbcode n'est pas traduit.

Comment puis-je faire alors ?

code de la fonction :
  function dcode($str)
  {
    $str=htmlspecialchars(trim($str));
    // liens externes
    $str = preg_replace("#\[url1=(.*?)?(.*?)\](.*?)\[/url1\]#si", "<a href=\"http://www.damechaos.com/redirect.php?url=\\2\" target=\"_blank\">\\3</a>", $str);
    // liens internes
    $str = preg_replace("#\[url2=(.*?)?(.*?)\](.*?)\[/url2\]#si", "<a href=\"\\2\">\\3</a>", $str);
    // mettre en gras
    $str = preg_replace("#\[g\](.*?)\[/g\]#si", "<strong>\\1</strong>", $str);
    // mettre en italique
    $str = preg_replace("#\[i\](.*?)\[/i\]#si", "<em>\\1</em>", $str);
    // mettre en souligné
    $str = preg_replace("#\[s\](.*?)\[/s\]#si", "<ins>\\1</ins>", $str);
    // insérer une image miniature
    $str = preg_replace("#\[min\](.*?)?(.*?)\[/min\]#si", "<img src=\"\\2\" style:\"width:45%;\" alt=\"\" />", $str);
    // insérer un screenshot
    $str = preg_replace("#\[screen\](.*?)?(.*?)\[/screen\]#si", "<img src=\"\\2\" style:\"width:95%;\" alt=\"\" />", $str);
    // insérer un lien imagé (par exemple, une miniature qui link son originale)
    $str = preg_replace("#\[iurl=(.*?)?(.*?)\](.*?)?(.*?)\[/iurl\]#si", "<a href=\"\\2\" target=\"_blank\"><img src=\"\\3\" style:\"width:45%;\" alt=\"\" /></a>", $str);
    // insérer une citation
    $str = preg_replace("#\[cite=(.*?)\](.*?)\[/cite/]#si", "<blockquote><strong>\\2</strong><br /><br />\\3</blockquote>", $str);
  }

Mammouth du PHP | 983 Messages

19 nov. 2005, 20:04

Il faut que tu appelles la chaine à traiter avec cette fonction. Montre nous un bout de code qu'on regarde ça ;)

Eléphanteau du PHP | 20 Messages

21 nov. 2005, 10:49

Ok

voici le code pour afficher mes news (une partie) :
[...]
        if (isset($_GET['lire'])) // si demande de lecture
 {
   // selection de la news ?lire
   $lire = mysql_query('Select * FROM news WHERE id=' . $_GET['lire']);
   while ($donnees = mysql_fetch_array($lire))
   {
   // lecture
   ?>

   <h2><? echo $donnees['titre']; ?>
   <span style="font-size:75%;font-style:italic;font-weight:normal;">(le <?php echo date('d/m/Y à  H\hi', $donnees['time']); ?>)</span>
   </h2>

   <p>
   <?
   $contenu = nl2br(stripslashes($donnees['contenu']));
   echo $contenu;
   ?>
   </p>

   <p>
   <?
   $suite = nl2br(stripslashes($donnees['suite']));
   echo $suite;
   ?>
   </p>

[...]

        }