Bonjour tout le monde :-°

J'ai fait une petite fonction Ecodage pour le bbcode et j'ai un soucis:

Voici la fonction

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
function Encodage($texte)
{
$texte = preg_replace('#:\)#i', '<img src="images/smile_content.png" alt=":-)"/>', $texte);
$texte = preg_replace('#:p#i', '<img src="images/smile_p.png" alt=":p"/>', $texte);
$texte = preg_replace('#;\)#i', '<img src="images/smile_clin.png" alt=";)"/>', $texte);
$texte = preg_replace('#:d#i', '<img src="images/smile_d.png" alt=":D"/>', $texte);
$texte = preg_replace('#8-\)#i', '<img src="images/smile_lunettes.png" alt="8-)"/>', $texte);
$texte = preg_replace('#:\(#i', '<img src="images/smile_fache.png" alt=":-("/>', $texte);
 
//Traitement du texte
$texte = preg_replace('#\[b\](.+)\[/b\]#i', '<strong>$1</strong>', $texte);//Gras
$texte = preg_replace('#\[i\](.+)\[/i\]#i', '<em>$1</em>', $texte);//Italique
$texte = preg_replace('#\[s\](.+)\[/s\]#i', '<span class="souligne">$1</span>', $texte);//Souligné
$texte = preg_replace('#\[aligne=(.+)\](.+)\[/aligne\]#i', '<div class="$1">$2</div>', $texte);//Allignement
$texte = preg_replace('#\[couleur=(.+)\](.+)\[/couleur\]#i', '<span class="$1">$2</span>', $texte);//Couleur
 
 
//Traitement des titres
$texte = preg_replace('#\[titre=grand\](.+)\[/titre\]#i', '<h2 class="titre">$1</h2>', $texte);//Titre grand
$texte = preg_replace('#\[titre=normal\](.+)\[/titre\]#i', '<h3 class="titre">$1</h3>', $texte);//Titre normal
$texte = preg_replace('#\[titre=petit\](.+)\[/titre\]#i', '<h4 class="titre">$1</h4>', $texte);//Titre petit
 
//Traitement des liens
$texte = preg_replace('#\[url=(.+)\](.+)\[/url\]#i', '<a href="$1">$2</a>', $texte);//Liens
 
//Traitement des images
$texte = preg_replace('#\[img\](.+)\[/img\]#i', '<img src="$1" alt="image_user"/>', $texte);//Images
$texte = preg_replace('#\[aligne=(.+)\](.+)\[/aligne\]#i', '<span class="$1">$2</span>', $texte);//Allignement des images
 
 
return $texte;
}
Le soucis vient quand j'associe plusieurs balises: par exemple

[aligne=alignD][img][/img][/aligne]

Je me demande si vous connaissez le problème et surtout sa solution...
Est ce que ça vient de l'ordre des preg_replace dans le code par exemple?

Merci d'avance pour votre aide.