Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/01/2012, 08h57   #1
Candidat au titre de Membre du Club
 
Homme thibaut languevin
Étudiant
Inscription : juillet 2011
Messages : 31
Détails du profil
Informations personnelles :
Nom : Homme thibaut languevin
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : juillet 2011
Messages : 31
Points : 11
Points : 11
Par défaut auto-complétition d'un bbcode

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 :
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 :
[_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
thib3113 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h09.


 
 
 
 
Partenaires

Hébergement Web