[PHP]Fonction rechercher

nhea Messages postés 55 Statut Membre -  
nhea Messages postés 55 Statut Membre -
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
A voir également:

14 réponses

giheller Messages postés 1960 Date d'inscription   Statut Membre Dernière intervention   146
 
bonsoir,

je ne sais pas si cette fonction existe en php mais peut être pouvez vous en créer une.
0
Atropa Messages postés 2051 Statut Membre 274
 
il faut le faire avec str_replace()

par exemple : $string = str_replace(':rire:','<img src="./img.jpg" alt="sourire" />',$string);
0
giheller Messages postés 1960 Date d'inscription   Statut Membre Dernière intervention   146
 
bonne idée.
0
nhea Messages postés 55 Statut Membre
 
ok, merci je vais essayer tantôt, la je doit faire autre chose.
0
nhea Messages postés 55 Statut Membre
 
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Atropa Messages postés 2051 Statut Membre 274
 
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.
0
nhea Messages postés 55 Statut Membre
 
Et ou je le mets le code que tu m'a donné($string = str_replace(':rire:','<img src="./img.jpg" alt="sourire" />',$string);)?
0
Atropa Messages postés 2051 Statut Membre 274
 
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é
0
nhea Messages postés 55 Statut Membre
 
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
0
Atropa Messages postés 2051 Statut Membre 274
 
je ne comprend pas le sens de ton dernier post
0
nhea Messages postés 55 Statut Membre
 
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.
0
Atropa Messages postés 2051 Statut Membre 274
 
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
0
nhea Messages postés 55 Statut Membre
 
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
0
Atropa Messages postés 2051 Statut Membre 274
 
tout dépend comment tu as codé le truc
0
nhea Messages postés 55 Statut Membre
 
Bref, je regarderais sa demain et je te donne des nouvelle, il est asser tard.
0