Bonsoir,

Je suis en train de me prendre la tête sur ce problème depuis déjà trop longtemps. Pourriez vous m'aider à trouver la bonne manière de procéder? Il s'agit d'un système de smiley par code comme sur n'importe lequel des forum. Je n'arrive pas à le gérer dynamiquement quand je dois changer les code choisit par l'image. Voici le code qui est surement très mauvais mais j'ai tout appris sur le net donc excusez moi.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
 
function formatage_texte($message) {
	$selection=mysql_query("SELECT * FROM smileys");
 
	$non_formate = array(
		'/([\w]+:\/\/[\w-?&;#~=\.\/\@]+[\w\/])/i',
		'`\[italique\](.+)\[/italique\]`isU',  
		'`\[gras\](.+)\[/gras\]`isU',
		'`\[souligne\](.+)\[/souligne\]`isU',
		'`\[barre\](.+)\[/barre\]`isU',
		'`\[lien\](.+)\[/lien\]`isU',
		'`\[lien url="(.+)"\](.+)\[/lien\]`isU',
		'`\[image\](.+)\[/image\]`isU',
		'`\[center\](.+)\[/center\]`isU',
		'`\[citation\](.+)\[/citation\]`isU',
		'`\[citation nom="(.+)"\](.+)\[/citation\]`isU',
		'`\[citation lien="(.+)"\](.+)\[/citation\]`isU',
		'`\[taille valeur="(.+)"\](.+)\[/taille\]`isU',
		'`\[position valeur="(.+)"\](.+)\[/position\]`isU',
		'`\[couleur valeur="(.+)"\](.+)\[/couleur\]`isU',
	);  
 
	while($recap = mysql_fetch_assoc($selection)) {
		$non_formate[] = $recap['code'];
	}
 
	$formate = array(  
		'<a href="$1" target="_blank">$1</a>',
		'<em>$1</em>',  
		'<strong>$1</strong>',
		'<u>$1</u>',
		'<del>$1</del>', 
		'<a href="$1" target="_blank">$1</a>',
		'<a href="$1" target="_blank">$2</a>',
		'<img src="$1" alt="Image utilisateur" />',
		'<center>$1</center>',
		'<br /><span class="citation">Citation</span><div class="citation2">$1</div>',
		'<br /><span class="citation">Citation : $1</span><div class="citation2">$2</div>',
		'<br /><span class="citation"><a href="$1">Citation</a></span><div class="citation2">$2</div>',
		'<font size="$1">$2</font>',
		'<div style="float:$1;">$2</div>',
		'<font color="$1">$2</font>',
	); 
 
	while($recap = mysql_fetch_assoc($selection)) {
		$formate[] = "<img src=\"img/smiley/$recap[img]\" />";
	}
 
	$message = htmlspecialchars($message);
	$message = preg_replace($non_formate, $formate, $message);
 
	$message = nl2br($message);
 
	return $message;
}
J'ai mis un smile avec comme code :cavalier: et comme phrase de test ":cavalier: Ho un cavalier!". Aucun des deux "cavalier" n'est affiché et le changement pour l'image ne se produit pas. Si vous pouviez éclairer ma lanterne, ça serait super.