[PHP]Fonction rechercher

Bonjour,
je cherche une fonction qui remplace des ligne de code par des images, par example

si quelqu'un écrit (:rire:) sur le forum, sa va afficher un bonhomme sourire.

Merci de vos réponse d'avance
Configuration: Windows vista et XP
Linux Ubuntu

14 réponses

  1. Bref, je regarderais sa demain et je te donne des nouvelle, il est asser tard.
    1. Je pensait qu'il fallait mettre sa dans lire_sujet.php vis que sais la qu'il doit lire les sujet et les modifier au fure et a mesure qu'il lit le code
      1. et bien tu mets tes traitements de chaines là ou tu les enregistres dans la base de donnée donc dans insert_sujet.php je suppose...

        et pour rajouter des smiley tu fais ça avec des str_replace() ou plutôt des array dans str_replace()

        https://www.php.net/str_replace

        voilà la doc de la fonction
        1. Bon je vais dire clairement mon projet.
          Je fait un Forum qui compose 4 page: index.php, insert_sujet.php, insert_reponse.php et lire_sujet.php dans sa, j'aimerais ajouter une fonction qui permet les smileys d'etre afficher.
          1. Sais que a la base s'est un forum. il y a 4 partie:
            -index.php
            -lire_sujet.php
            -insert_sujet.php
            -insert_reponse.php

            si tu veut les script des 4 dit moi le
            1. et bien juste avant d'enregistrer dans ta base de donnée

              juste après htmlentities() par exemple

              mais htmlentities() tu devrais le mettre aussi à l'enregistrement parce que comme je disais tu n'enregistre qu'une fois tes pages... alors que le but c'est qu'elles soient affichées le plus possible !!!

              et il vaut mieux se protéger avant d'enregistrer !

              au debut de chacune de mes pages je mets :

              function ProtectArray($item) {
              		$item = array_map('htmlentities',$item);
              		if (@mysql_real_escape_string('b')) return array_map('mysql_real_escape_string',$item);
              		else return $item;
              	}
              
              if (isset($_GET)) $GET = ProtectArray($_GET);
              if (isset($_POST)) $POST = ProtectArray($_POST);
              if (isset($_COOKIE)) $COOKIE = ProtectArray($_COOKIE);


              mais il faut le mettre après la connexion à mysql...

              de cette manière tu es sur que tout ce qui entre dans tes scripts est protégé
              1. Et ou je le mets le code que tu m'a donné($string = str_replace(':rire:','<img src="./img.jpg" alt="sourire" />',$string);)?
                1. l'idéale serait de le faire à l'enregistrement dans la db ça n'utiliserait qu'une fois la fonction au lieu de le faire à chaque affichage.

                  quand je fais ce genre de chose je fais une fonction dans un sens et une fonction dans l'autre et j'utilise la premier avant l'enregistrement et la seconde avant la modification parce que logiquement on enregistre et on modifie moins qu'on affiche... à part peut être si on a affaire à des personnes très lunatique.
                  1. 2 question:

                    ou faut que je place la ligne de code que tu m'a donné, voici mon code si sa peut t'aider a m'indiquer ou:
                    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
                    <html lang="fr-ca"><head></head>
                    <body style="background-image: url(arrplan.jpg);">
                    <div style="text-align: center;">
                    <div style="text-align: center;">
                    <img style="width: 990px; height: 255px;" alt="" src="header.png">
                    <?php
                    if (!isset($_GET['id_sujet_a_lire'])) {
                    echo 'Sujet non défini.';
                    }
                    else {
                    ?>
                    <table width="500" border="1"><tr>
                    <td>
                    Auteur
                    </td><td>
                    Messages
                    </td></tr>
                    <?php
                    // on se connecte à notre base de données
                    mysql_connect ('localhost', 'root', '*******************');
                    mysql_select_db ('forum');
                    // on prépare notre requête
                    $sql = 'SELECT auteur, message, date_reponse FROM forum_reponses WHERE
                    correspondance_sujet="'.$_GET['id_sujet_a_lire'].'" ORDER BY date_reponse ASC';
                    // on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
                    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
                    // on va scanner tous les tuples un par un
                    while ($data = mysql_fetch_array($req)) {
                    // on décompose la date
                    sscanf($data['date_reponse'], "%4s-%2s-%2s %2s:%2s:%2s", $annee, $mois, $jour,
                    $heure, $minute, $seconde);
                    // on affiche les résultats
                    echo '<tr>';
                    echo '<td>';
                    // on affiche le nom de l'auteur de sujet ainsi que la date de la réponse
                    echo htmlentities(trim($data['auteur']));
                    echo '<br />';
                    echo $jour , '-' , $mois , '-' , $annee , ' ' , $heure , ':' , $minute;
                    echo '</td><td>';
                    // on affiche le message
                    echo nl2br(htmlentities(trim($data['message'])));
                    echo '</td></tr>';
                    }
                    // on libère l'espace mémoire alloué pour cette reqête
                    mysql_free_result ($req);
                    // on ferme la connection à la base de données.
                    mysql_close ();
                    ?>
                    <!-- on ferme notre table html -->
                    </table>
                    <br /><br />
                    <!-- on insère un lien qui nous permettra de rajouter des réponses à ce sujet -->
                    <a href="./insert_reponse.php?numero_du_sujet=<?php echo $_GET['id_sujet_a_lire']; ?>
                    ">Répondre</a>
                    <?php
                    }
                    ?>
                    <br /><br />
                    <!-- on insère un lien qui nous permettra de retourner à l'accueil du forum -->
                    <a href="./index.php">Retour à l'accueil</a>
                    </body></html>

                    2iemement quand je le met avant d'afficher le message, sa me donne l'erreur suivent:
                    Notice: Undefined variable: string in C:\Program Files\EasyPHP 3.0\www\test\forum\lire_sujet.php on line 43
                    1. il faut le faire avec str_replace()

                      par exemple : $string = str_replace(':rire:','<img src="./img.jpg" alt="sourire" />',$string);
                      1. bonne idée.
                    2. bonsoir,

                      je ne sais pas si cette fonction existe en php mais peut être pouvez vous en créer une.