Voila pour faire simple, j'ai un formulaire avec un petit éditeur ou l'on peut faire mettre du texte en gras, italique, souligné, et un liste de chose.

Je galère un peu avec les remplacement des balises [LIST] en <ul> et[*] en <li>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
[ LIST ]
[ * ]na
[ * ]na
[ * ]na
[ * ]na
[ /LIST ]
et j'utilise des expressions régulière pour remplacer ces balises. Sauf que le code en retour fait un peu ce qu'il veut.
surtout au niveau des retours à la ligne
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
<p class="description"><ul>
<li> Les axes structurants
 </li><li> Les entrées de ville
 </li><li> Les axes médians
 </li><li> Les ronds-points, carrefours et giratoires
Tout se décale et quand je passe le tout dans un nl2br(), des balises <BR> se glisse entre la fin du texte et les balises fermetures </li> les retour à la ligne sont c'est un peu compliqué pour avoir un code valide.
j'utilise comme rexexp :
Code php : 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
 
function parse_to_html($message)
{
  $pattern = array (1 => '#\[b\](.*)\[/b\]#Usi',
    2 => '#\[i\](.*)\[/i\]#Usi',
    3 => '#\[u\](.*)\[/u\]#Usi',
    4 => '#\[color=([^\]]*)\](.*)\[/color\]#Usi',
    5 => '#\[size=([\-\+]?\d+)\](.*?)\[/size\]#ise',
    6 => '#\[url=([^\]]*)\](.*)\[/url\]#Usi',
    7 => '#\[url\](.*)\[/url\]#Usi',
    8 => '#\[img\](.*)\[/img\]#Usi',
    // 9 => '#\[\*\](.*)\n#iU',
    // 9 => '/\[\*\]([^(\[\*\])]*)/i',
    // 10 => '#\[list\](.+)\[/list\]#isU',
    // 11 => '#\[list=1\](.+)\[/list\]#isU'
    9 => "#\[list\](.+)\[/list\]#isU",
    10 => '#\[\*\](.+)(?=(</ul>|\[\*\]))#isU',
    11 => '#<ul (.+)>(.+)<li>#isU',
    12 => '#\[list=1\](.+)\[/list\]#isU');
 
  $replacement = array (1 => '<span style="font-weight: bold">$1</span>',
    2 => '<span style="font-style: italic">$1</span>',
    3 => '<span style="text-decoration: underline">$1</span>',
    4 => '<span style="color: $1">$2</span>',
    5 => '<span style="font-size: $1%; line-height: normal">$2</span>',
    6 => '<a href="$1" title="$1">$2</a>',
    7 => '<a href="$1" title="$1">$1</a>',
    8 => '<img src="$1" />',
    // 9 => '<li>$1</li>',
    // 10 => '<ul>$1</ul>',
    // 11 => '<ol>$1</ol>'
    9 => '<ul>$1</ul>',
    10 => "<li> $1 </li>",
    11 => '<ul $1><li>',
    12 => '<ol>$1</ol>');
  $text = stripslashes($message);
  $text = htmlspecialchars($text);
  $text = preg_replace($pattern, $replacement, $text);
  $text = nl2br($text);
  return $text;
}
Et j'avoue qu'au niveau regexp je pêche !