Bonjour, je cherche à compléter un bbcode automatiquement, j'ai donc fais cette fonction, en utilisant la présentation d'un jeu pour exemple :

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
56
57
58
59
60
61
62
63
64
65
<?php
 
function array_difference($tab, $tab2){
 
    $i = 0;
    foreach($tab AS $t){
    $e = 0;
        foreach($tab2 AS $v){
            if($t === $v){                
                unset($tab2[$e]);
                unset($tab[$i]);
                break;                
            }
            ++ $e;
        }    
        ++ $i;
    }    
    return $tab;    
 
}
 
$text = '[_quote][_center][_color=red][_b](¯`·._.·[  Judge Dredd : Dredd vs Death  ]·._.·´¯)[_/b][_/color][_/center][_/quote]
[_quote][_center][_img]http://image.jeuxvideo.com/images/pc/j/d/jdjdpc0f.jpg[_/img][_/center][_/quote]

[_quote][_center][_b][_u]Plateforme[_/u] : [_/b] [_i]PC[_/i]
[_b][_u]Editeur[_/u] : [_/b] [_i]Vivendi Universal Games[_/i]
[_b][_u]Développeur[_/u] : [_/b] [_i] Rebellion[_/i]
[_b][_u]Type[_/u] : [_/b] [_i] FPS[_/i]
[_b][_u]Note du test[_/u] : [_/b] [_i] 11/20[_/i]
[_b][_u]Multijoueurs[_/u] : [_/b] [_i]Oui[_/i]
[_b][_u]Version[_/u] : [_/b] [_i]Française intégrale[_/i]
[_b][_u]Config minimum[_/u] : [_/b] [_i]Win 98/ME/2000/XP, P 700 MHZ, 128 Mo de Ram, carte vidéo 3D 32 Mo, 1,3 Go disque dur[_/i]
[_b][_u]Date[_/u] : [_/b] [_i] 17 octobre 2003[_/i][_/center][_/quote]

[_quote][_center][_b][_u]Descriptif du jeu[_/u] : [_/b]
[_i]Incarnez le plus implacable de tous les juges de Mega City One dans Judge Dredd : Dredd vs Death sur PC. Contrecarrez les plans des vampires qui ont décidé d\'envahir la ville. Vous aurez le choix de vie ou de mort sur ceux que vous arrêterez, et pourrez jouer la campagne en coopération avec des amis.[_/i][_/center][_/quote]

[_quote][_center][_b][_u]Test de la rédaction[_/u] : [_/b]
[_i]Comme son nom l\'indique, le jeu est tiré du célèbre comic Judge Dredd. BD qui se déroule au XXIIème siècle à Mega-City One, métropole de plus de 400 mi';
 
preg_match_all('#(\[)([a-zA-Z0-9\#]+)(\])#s', $text, $open_tags); // On recence les balises d'ouverture
preg_match_all('#\[/([a-zA-Z])\]#s', $text, $close_tags); // On recence les balises de fermeture
 
// On gère les balises d'ouverture
$open = array();
foreach ($open_tags[2] as $open_tag){    
    $open[] = $open_tag;
}
 
// On gère les balises de fermeture
$close = array();
foreach ($close_tags[1] as $close_tag){    
    $close[] = $close_tag;
}
 
$close = array_reverse($close); // On inverse le tableau
 
$manquantes = array_reverse(array_difference($open, $close));
foreach($manquantes AS $m){
    $text .= '[/'.$m.']';
}
 
echo $text;
 
?>
le problème, c'est que cela me renvoi :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
[_quote][_center][_color=red][_b](¯`·._.·[ Judge Dredd : Dredd vs Death ]·._.·´¯)[_/b][_/color][_/center][_/quote] [_quote][_center][_img]http://image.jeuxvideo.com/images/pc/j/d/jdjdpc0f.jpg[_/img][_/center][_/quote] [_quote][_center][_b][_u]Plateforme[_/u] : [_/b] [_i]PC[_/i][_/center] [_center][_b][_u]Editeur[_/u] : [_/b] [_i]Vivendi Universal Games[_/i][_/center] [_center][_b][_u]Développeur[_/u] : [_/b] [_i] Rebellion[_/i][_/center] [_center][_b][_u]Type[_/u] : [_/b] [_i] FPS[_/i][_/center] [_center][_b][_u]Note du test[_/u] : [_/b] [_i] 11/20[_/i][_/center] [_center][_b][_u]Multijoueurs[_/u] : [_/b] [_i]Oui[_/i][_/center] [_center][_b][_u]Version[_/u] : [_/b] [_i]Française intégrale[_/i][_/center] [_center][_b][_u]Config minimum[_/u] : [_/b] [_i]Win 98/ME/2000/XP, P 700 MHZ, 128 Mo de Ram, carte vidéo 3D 32 Mo, 1,3 Go disque dur[_/i][_/center] [_center][_b][_u]Date[_/u] : [_/b] [_i] 17 octobre 2003[_/i][_/center][_/quote] [_quote][_center][_b][_u]Descriptif du jeu[_/u] : [_/b][_/center] [_center][_i]Incarnez le plus implacable de tous les juges de Mega City One dans Judge Dredd : Dredd vs Death sur PC. Contrecarrez les plans des vampires qui ont décidé d'envahir la ville. Vous aurez le choix de vie ou de mort sur ceux que vous arrêterez, et pourrez jouer la campagne en coopération avec des amis.[_/i][_/center][_/quote] [_quote][_center][_b][_u]Test de la rédaction[_/u] : [_/b][_/center] [_center][_i]Comme son nom l'indique, le jeu est tiré du célèbre comic Judge Dredd. BD qui se déroule au XXIIème siècle à Mega-City One, métropole de plus de 400 mi[_/center][_/center][_/quote][_/center][_/center][_/quote][_/center][_/center][_/center][_/center][_/center][_/center][_/center][_/center][_/center][_/quote][_/img][_/center][_/quote][_/center][_/quote]
autant vous dire que le bbcode à la fin ne se complète pas ...
je ne sais pas d'où vient le problème, ni comment le regler, merci d'avance


j'ai modifier mes bbcodes afin qu'ils n'interfèrent pas avec les bbcode de ce forum... mes bbcodes initiaux n'ont pas l'underscore au début