Partage
  • Partager sur Facebook
  • Partager sur Twitter

CSS Smileys - Erreur de preg_replace()

Sujet résolu
    25 juillet 2006 à 11:24:45

    Bonjour,

    en réalisant mon système de news, j'y ai inséré des smileys, cependant j'ai un souci !

    Voici l'erreur : Cliquez ici

    Voici le code de ma page index.php

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

    <html>
    <head>
    <title>Pandemonium v2 :: Réalisé par PIGNON THOMAS ::.</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link rel="stylesheet" media="screen" type="text/css" title="Exemple" href="global_v2.css" />
    <script language="javascript" type="text/javascript" src="prev.js"></script>
    <script language="Javascript">
    function bbcode(bbdebut, bbfin)
    {
    var input = window.document.formulaire.textarea;
    input.focus();
    /* pour IE (toujous un cas appar lui ;) )*/
    if(typeof document.selection != 'undefined')
    {
    var range = document.selection.createRange();
    var insText = range.text;
    range.text = bbdebut + insText + bbfin;
    range = document.selection.createRange();
    if (insText.length == 0)
    {
    range.move('character', -bbfin.length);
    }
    else
    {
    range.moveStart('character', bbdebut.length + insText.length + bbfin.length);
    }
    range.select();
    }
    /* pour les navigateurs plus récents que IE comme Firefox... */
    else if(typeof input.selectionStart != 'undefined')
    {
    var start = input.selectionStart;
    var end = input.selectionEnd;
    var insText = input.value.substring(start, end);
    input.value = input.value.substr(0, start) + bbdebut + insText + bbfin + input.value.substr(end);
    var pos;
    if (insText.length == 0)
    {
    pos = start + bbdebut.length;
    }
    else
    {
    pos = start + bbdebut.length + insText.length + bbfin.length;
    }
    input.selectionStart = pos;
    input.selectionEnd = pos;
    }
    /* pour les autres navigateurs comme Netscape... */
    else
    {
    var pos;
    var re = new RegExp('^[0-9]{0,3}$');
    while(!re.test(pos))
    {
    pos = prompt("insertion (0.." + input.value.length + "):", "0");
    }
    if(pos > input.value.length)
    {
    pos = input.value.length;
    }
    var insText = prompt("Veuillez taper le texte");
    input.value = input.value.substr(0, pos) + bbdebut + insText + bbfin + input.value.substr(pos);
    }
    }
    function smilies(img)
    {
    window.document.formulaire.textarea.value += '' + img + '';
    }
    </script>
    </head>

    <body>
    <div id="en_tete">
       <!-- Ici on mettra la bannière -->
    </div>

    <div id="menu">
            <div class="element_menu">
                    <a href="#">News</a>&nbsp;&nbsp;<img src="images/puce.jpg">&nbsp;
                    <a href="#">Membres</a>&nbsp;&nbsp;<img src="images/puce.jpg">&nbsp;
                    <a href="#">Biographie</a>&nbsp;&nbsp;<img src="images/puce.jpg">&nbsp;
                    <a href="#">Concerts</a>&nbsp;&nbsp;<img src="images/puce.jpg">&nbsp;
                    <a href="#">Photos</a>&nbsp;&nbsp;<img src="images/puce.jpg">&nbsp;
                    <a href="#">Livre d'or</a>&nbsp;&nbsp;<img src="images/puce.jpg">&nbsp;
                    <a href="#">Contacts</a>&nbsp;&nbsp;<img src="images/puce.jpg">&nbsp;
                    <a href="#">Liens</a>&nbsp;&nbsp;<img src="images/puce.jpg">&nbsp;
                    <a href="#">Admin</a>
            </div>
    </div>


    <div id="corps">

    <div class="titre_contenu">Les news</div><br />

    <?php
    mysql_connect("localhost", "pseudo", "pass");
    mysql_select_db("serix-designcom9");

    // On récupère les 5 dernières news
    $retour = mysql_query('
    SELECT * FROM pandemo_v2_news ORDER BY id DESC LIMIT 0, 5');
    while ($donnees = mysql_fetch_array($retour))
    {
    ?>

    <table width="95%" cellspacing="0" cellpadding="0" align="center">
            <tr>
                    <td class="news_titre"><?php echo $donnees['
    titre']; ?></td>
            </tr>
            <tr>
                    <td class="news_message">
                    <?php
            // On enlève les éventuels antislash PUIS on crée les entrées en HTML (<br />)
            $contenu = nl2br(stripslashes(htmlentities($donnees['
    contenu'])));
                    $contenu = preg_replace('
    !\[gras\](.+)\[/gras\]!isU', '<strong>$1</strong>', $contenu);
                    $contenu = preg_replace('
    !\[italic\](.+)\[/italic\]!isU', '<em>$1</em>', $contenu);
                    $contenu = preg_replace('
    !\[souligne\](.+)\[/souligne\]!isU', '<span style="text-decoration: underline;">$1</span>', $contenu);
                    $contenu = preg_replace('
    !\[barre\](.+)\[/barre\]!isU', '<span style="text-decoration: line-through;">$1</span>', $contenu);
                   
                    $contenu = preg_replace('
    !\\[citation=([\s\S]*?)\](.+)\[\/citation\]!isU', '<br /><strong style="margin-left: 40px;">Citation $1 :</strong><div style="border-left: 5px solid #FF9000; padding-top: 5px; padding-bottom: 5px; border-right: 5px solid #FF9000; margin-left: 40px; padding-left: 10px; margin-top: 5px; width: 80%; font-family: Verdana, \'Trebuchet MS\', Tahoma, \'Times New Roman\', Times, serif; text-align: left; font-size: 11px;" align="center">$2</div>', $contenu);
                    $contenu = preg_replace('
    !\[image\](.+)\[\/image\]!isU', '<img src="$1" />', $contenu);
                    $contenu = preg_replace('
    !\[url=([\s\S]*?)\](.+)\[/url\]!isU', '<a href="$1" target="_blank">$2</a>', $contenu);
                    $contenu = preg_replace('
    !([a-z0-9_/-]+)(@)([a-z0-9_./-]+)!i', '<a href="mailto:$0">$0</a>', $contenu);
                   
                    $contenu = preg_replace('
    !\[centre\](.+)\[/centre\]!isU', '<div align="center">$1</div>', $contenu);
                    $contenu = preg_replace('
    !\[gauche\](.+)\[/gauche\]!isU', '<div align="left">$1</div>', $contenu);
                    $contenu = preg_replace('
    !\[droite\](.+)\[/droite\]!isU', '<div align="right">$1</div>', $contenu);
                    $contenu = preg_replace('
    !\[justifie\](.+)\[/justifie\]!isU', '<div align="justify">$1</div>', $contenu);
                   
                    $contenu = preg_replace('
    !\[size_petit\](.+)\[/size_petit\]!isU', '<span style="font-size: 10px;">$1</span>', $contenu);
                    $contenu = preg_replace('
    !\[size_moyen\](.+)\[/size_moyen\]!isU', '<span style="font-size: 12px;">$1</span>', $contenu);
                    $contenu = preg_replace('
    !\[size_grand\](.+)\[/size_grand\]!isU', '<span style="font-size: 18px;">$1</span>', $contenu);
                   
                    $contenu = preg_replace('
    !\[couleur_noir\](.+)\[/couleur_noir\]!isU', '<span style="color: #000000;">$1</span>', $contenu);
                    $contenu = preg_replace('
    !\[couleur_rouge\](.+)\[/couleur_rouge\]!isU', '<span style="color: #FF0000;">$1</span>', $contenu);
                    $contenu = preg_replace('
    !\[couleur_orange\](.+)\[/couleur_orange\]!isU', '<span style="color: #FF9000;">$1</span>', $contenu);
                    $contenu = preg_replace('
    !\[couleur_bleu\](.+)\[/couleur_bleu\]!isU', '<span style="color: #0090FF;">$1</span>', $contenu);
                    $contenu = preg_replace('
    !\[couleur_vert\](.+)\[/couleur_vert\]!isU', '<span style="color: #00C809;">$1</span>', $contenu);
                   
                    $contenu = preg_replace('
    !:D!isU', '<img src="images/smiley/sourire_grand.png" />', $contenu);
                    $contenu = preg_replace('
    !:)!isU', '<img src="images/smiley/sourire.png" />', $contenu);
                    $contenu = preg_replace('
    !:(!isU', '<img src="images/smiley/triste.png" />', $contenu);
                    $contenu = preg_replace('
    !::(!isU', '<img src="images/smiley/pleure.png" />', $contenu);
                    $contenu = preg_replace('
    !:P!isU', '<img src="images/smiley/langue.png" />', $contenu);
                    $contenu = preg_replace('
    !;)!isU', '<img src="images/smiley/clin_oeil.png" />', $contenu);
                    $contenu = preg_replace('
    !:o!isU', '<img src="images/smiley/o.png" />', $contenu);
                    $contenu = preg_replace('
    !^^!isU', '<img src="images/smiley/^^.png" />', $contenu);
                    $contenu = preg_replace('
    !8o|!isU', '<img src="images/smiley/agressif.png" />', $contenu);
                    $contenu = preg_replace('
    !::!isU', '<img src="images/smiley/attention.png" />', $contenu);
                    $contenu = preg_replace('
    !:?!isU', '<img src="images/smiley/point_interrogation.png" />', $contenu);
                    $contenu = preg_replace('
    !6:)!isU', '<img src="images/smiley/diable_content.png" />', $contenu);
                    $contenu = preg_replace('
    !6:(!isU', '<img src="images/smiley/diable_triste.png" />', $contenu);
                    $contenu = preg_replace('
    !:$!isU', '<img src="images/smiley/rouge.png" />', $contenu);
                    $contenu = preg_replace('
    !:|!isU', '<img src="images/smiley/surpris.png" />', $contenu);
                    $contenu = preg_replace('
    !:x!isU', '<img src="images/smiley/yeux_croix.png" />', $contenu);
            echo $contenu;
            ?>

                    </td>
            </tr>
            <tr>
                    <td class="news_auteur"><?php echo date('
    d/m/Y à H\hi', $donnees['timestamp']); ?></td>
            </tr>
           
    </table>

    <?php
    } // Fin de la boucle des news
    ?>

    </div>


    <div id="pied_de_page">
       
    </div>

    <div id="copyright">
            <br /><b>Copyright 2006</b> - http://pandemonium.serix.be :: Site réalisé par <b>Thomas PIGNON</b>
    </div>
    </body>
    </html>


    Si vous avez besoin du code JavaScript ou le code de la page où je rédige la news, dites le :)

    • Partager sur Facebook
    • Partager sur Twitter
      25 juillet 2006 à 11:51:41

      Il faut que tu échappe les parenthèses ouvrantes et fermantes dans le preg_replace de tes smilies.

      $contenu = preg_replace('!:\)!isU', '<img src="images/smiley/sourire.png" />', $contenu);


      ! comme délimiteur, n'est pas conseillé, mieux vaut # ou encore `

      • Partager sur Facebook
      • Partager sur Twitter
        25 juillet 2006 à 12:28:00

        Merci bcp, ça fonctionne...

        Encore un grand merci !

        :D:):p
        • Partager sur Facebook
        • Partager sur Twitter

        CSS Smileys - Erreur de preg_replace()

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown