Page 1 sur 1

code simplifié

Posté : 19 nov. 2005, 19:54
par Aurelie
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);
  }

Posté : 19 nov. 2005, 20:04
par rami
Il faut que tu appelles la chaine à traiter avec cette fonction. Montre nous un bout de code qu'on regarde ça ;)

Posté : 21 nov. 2005, 10:49
par Aurelie
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>

[...]

        }