Bonjour,

Je viens de créer un bbcode de tableaux pour mon site d'articles et je m'aperçois d'un problème lorsque je créé un tableau. Par exemple quand je fais:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
[tableau]
[ligne][cellule]Titre 1[/cellule][cellule]Titre 2[/cellule][cellule]Titre 3[/cellule][/ligne]
[ligne] [cellule]Contenu 1[/cellule] [cellule]Contenu 2[/cellule] [cellule]Contenu 3[/cellule] [/ligne]
[/tableau]
Ce qui donne logiquement :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
<table><br>
<tr><td>Titre 1</td><td>Titre 2</td><td>Titre 3</td></tr><br>
<tr><td>Contenu 1</td><td>Contenu 2</td><td>Contenu 3</td></tr><br>
</table>
Mais comme ce qui se trouve en dehors des balise td et tr remonte et se place avant le tableau au moment de l'affichage, je vois donc ceci dans le code source:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<br>
<br>
<br>
<table>
<tr><td>Titre 1</td><td>Titre 2</td><td>Titre 3</td></tr>
<tr><td>Contenu 1</td><td>Contenu 2</td><td>Contenu 3</td></tr>
</table>
Quelqu'un peu m'aider çà créer une regex qui puisse me débarrasser de ces <br> à l'intérieur de mon tableau ?

PS: Notez que des fois les <br> peuvent êtres séparés par un ou plusieurs espaces, tabulation, saut à la ligne, donc si c'est possible la regex devra aussi traiter ce genre de situation.

Merci d'avance de m'accorder un petit peu de votre temps pour régler mon petit problème que je n'arrive pas à régler moi même étant allergique aux regex .

EDIT :
Je crois avoir trouvé une piste qui consiste à agir directement sur le bbcode, je fais donc ceci:

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
 
<?php
 
 
$chaine= "[tableau]
[ligne] 
[cellule]Contenu 1[/cellule] 
[cellule]Contenu 2[/cellule] 
[cellule]Contenu 3[/cellule] 
[/ligne]
[ligne] 
[cellule]Contenu 1[/cellule] 
[cellule]Contenu 2[/cellule] 
[cellule]Contenu 3[/cellule] 
[/ligne]
[ligne] 
[cellule]Contenu 1[/cellule]
[cellule]Contenu 2[/cellule] 
[cellule]Contenu 3[/cellule]
[/ligne]
[/tableau] ";
 
 
$chaine = preg_replace('#[tableau](\r\n|\n|\r)[ligne]#','[tableau][ligne]',$chaine);
$chaine = preg_replace('#[ligne](\r\n|\n|\r)[cellule]#isU','[ligne][cellule]',$chaine);
$chaine = preg_replace('#[/cellule](\r\n|\n|\r)[cellule]#isU','[/cellule][cellule]',$chaine);
$chaine = preg_replace('#[/cellule](\r\n|\n|\r)[/ligne]#isU','[/cellule][/ligne]',$chaine);
$chaine = preg_replace('#[/ligne](\r\n|\n|\r)[ligne]#isU','[/ligne][ligne]',$chaine);
$chaine = preg_replace('#[ligne](\r\n|\n|\r)[celluletitre]#isU','[ligne][celluletitre]',$chaine);
$chaine = preg_replace('#[/celluletitre](\r\n|\n|\r)[celluletitre]#isU','[/celluletitre][celluletitre]',$chaine);
$chaine = preg_replace('#[/celluletitre](\r\n|\n|\r)[/ligne]#isU','[/celluletitre][/ligne]',$chaine);
 
echo $chaine;
 
?>
Mais ça ne fonctionne pas !! quelqu'un peut-il m'aider ?
Merci.