Probleme bbcode
Utilisateur anonyme
-
arthezius Messages postés 3756 Statut Membre -
arthezius Messages postés 3756 Statut Membre -
Bonjour,
j'ai mis en place un systeme de BBcode sur mon forum
tout fonctionne parfaitement
mis a part le fait que si
je met un texte a la fois en gras ET que je grossi la police
il ne prend que le gras
sinon je peut fait toutes les autres combinaisons
gras-italique , gras-couleur , grande police-couleur etc...
c'est pour moi, un bug bizarre et je n'ai aucune idée
de la cause
voila mon BBcode :
<?php
function code($texte)
{
$texte = str_replace(':D: ', '<img src="design/skin/forum/smi_xd.png" title="xd" alt="xd" />', $texte);
$texte = str_replace(':lol: ', '<img src="design/skin/forum/smi_lol.gif" title="lol" alt="lol" />', $texte);
$texte = str_replace(':triste:', '<img src="design/skin/forum/smi_sad.png" title="triste" alt="triste" />', $texte);
$texte = str_replace(':frime:', '<img src="design/skin/forum/smi_sol.gif" title="cool" alt="cool" />', $texte);
$texte = str_replace(':rire:', '<img src="design/skin/forum/smi_zen.gif" title="zen" alt="zen" />', $texte);
$texte = str_replace(':s:', '<img src="design/skin/forum/smi_conf.gif" title="confus" alt="confus" />', $texte);
$texte = str_replace(':o:', '<img src="design/skin/forum/smi_mur.gif" title="choc" alt="choc" />', $texte);
$texte = str_replace(':+1:', '<img src="design/skin/forum/smi_1.gif" title="+1" alt="+1" />', $texte);
$texte = str_replace(':wink:', '<img src="design/skin/forum/smi_wink.gif" title="wink" alt="wink" />', $texte);
$texte = str_replace(':ok:', '<img src="design/skin/forum/smi_ok.png" title="ok" alt="ok" />', $texte);
$texte = str_replace(':hihi:', '<img src="design/skin/forum/smi_hihi.gif" title="hihi" alt="hihi" />', $texte);
$texte = str_replace(':ho:', '<img src="design/skin/forum/smi_ho.gif" title="ho" alt="ho" />', $texte);
$texte = str_replace(':sif:', '<img src="design/skin/forum/smi_sif.gif" title="siffle" alt="siffle" />', $texte);
$texte = preg_replace('`\[quote\](.+)\/quote\`isU', '<div id="quote">$1</div>', $texte);
$texte = preg_replace('`\[img\](.+)\/img\` isU' , '<a href="$1" target="_blank"><img class="topic_tof" src="$1" /></a>' , $texte);
//Mise en forme du texte
$texte = preg_replace('`\[g\](.+)\/g\`isU', '<strong>$1</strong>', $texte);
$texte = preg_replace('`\[i\](.+)\/i\`isU', '<em>$1</em>', $texte);
$texte = preg_replace('`\[s\](.+)\/s\`isU', '<u>$1</u>', $texte);
$texte = preg_replace('`\[url\](.+?)\/url`' , '<a href="$1" target="_blank">$1</a>' , $texte);
$texte = preg_replace('`\[color=(.+?)\](.+?)\/color`' , '<font color="$1">$2</font>' , $texte);
$texte = preg_replace('`\[size=(.+?)\](.+?)\/size`' , '<span style="font-size:$1;">$2</span>' , $texte);
return $texte;
}
?>
EDIT: oups, j'avais mal mis le code
j'ai mis en place un systeme de BBcode sur mon forum
tout fonctionne parfaitement
mis a part le fait que si
je met un texte a la fois en gras ET que je grossi la police
il ne prend que le gras
sinon je peut fait toutes les autres combinaisons
gras-italique , gras-couleur , grande police-couleur etc...
c'est pour moi, un bug bizarre et je n'ai aucune idée
de la cause
voila mon BBcode :
<?php
function code($texte)
{
$texte = str_replace(':D: ', '<img src="design/skin/forum/smi_xd.png" title="xd" alt="xd" />', $texte);
$texte = str_replace(':lol: ', '<img src="design/skin/forum/smi_lol.gif" title="lol" alt="lol" />', $texte);
$texte = str_replace(':triste:', '<img src="design/skin/forum/smi_sad.png" title="triste" alt="triste" />', $texte);
$texte = str_replace(':frime:', '<img src="design/skin/forum/smi_sol.gif" title="cool" alt="cool" />', $texte);
$texte = str_replace(':rire:', '<img src="design/skin/forum/smi_zen.gif" title="zen" alt="zen" />', $texte);
$texte = str_replace(':s:', '<img src="design/skin/forum/smi_conf.gif" title="confus" alt="confus" />', $texte);
$texte = str_replace(':o:', '<img src="design/skin/forum/smi_mur.gif" title="choc" alt="choc" />', $texte);
$texte = str_replace(':+1:', '<img src="design/skin/forum/smi_1.gif" title="+1" alt="+1" />', $texte);
$texte = str_replace(':wink:', '<img src="design/skin/forum/smi_wink.gif" title="wink" alt="wink" />', $texte);
$texte = str_replace(':ok:', '<img src="design/skin/forum/smi_ok.png" title="ok" alt="ok" />', $texte);
$texte = str_replace(':hihi:', '<img src="design/skin/forum/smi_hihi.gif" title="hihi" alt="hihi" />', $texte);
$texte = str_replace(':ho:', '<img src="design/skin/forum/smi_ho.gif" title="ho" alt="ho" />', $texte);
$texte = str_replace(':sif:', '<img src="design/skin/forum/smi_sif.gif" title="siffle" alt="siffle" />', $texte);
$texte = preg_replace('`\[quote\](.+)\/quote\`isU', '<div id="quote">$1</div>', $texte);
$texte = preg_replace('`\[img\](.+)\/img\` isU' , '<a href="$1" target="_blank"><img class="topic_tof" src="$1" /></a>' , $texte);
//Mise en forme du texte
$texte = preg_replace('`\[g\](.+)\/g\`isU', '<strong>$1</strong>', $texte);
$texte = preg_replace('`\[i\](.+)\/i\`isU', '<em>$1</em>', $texte);
$texte = preg_replace('`\[s\](.+)\/s\`isU', '<u>$1</u>', $texte);
$texte = preg_replace('`\[url\](.+?)\/url`' , '<a href="$1" target="_blank">$1</a>' , $texte);
$texte = preg_replace('`\[color=(.+?)\](.+?)\/color`' , '<font color="$1">$2</font>' , $texte);
$texte = preg_replace('`\[size=(.+?)\](.+?)\/size`' , '<span style="font-size:$1;">$2</span>' , $texte);
return $texte;
}
?>
EDIT: oups, j'avais mal mis le code
A voir également:
- Probleme bbcode
- Bbcode download - Télécharger - Divers Web & Internet
4 réponses
$texte = preg_replace('`\[size=(.+?)\](.+?)\/size`' , '<span style="font-size:$1;">$2</span>' , $texte);
Tu met que la valeur ou tu met bien par exemple:
[size=12px]...
Je demande ça car il faut bien mettre:
<span style="font-size:24px;">...
Sinon il faudrait modifier en:
$texte = preg_replace('`\[size=(.+?)\](.+?)\/size`' , '<span style="font-size:$1px;">$2</span>' , $texte);
C'est peut-être ça qui fait que ça marche pas.
Vérifie le code html généré.
Tu as aussi oublié les [ et ] sur la balise bbcode qui ferme.
$texte = preg_replace('`\[size=(.+?)\](.+?)\[/size\]' , '<span style="font-size:$1;">$2</span>' , $texte);
oui j'ai met bien la valeur en px
de la forme [size=12px]
et comme je le dit
si je l'utilise seule ou avec d'autres chose que le gras
la balise de taille de police fonctionne
donc les codes de gras et de taille de police doivent se court-circuiter
mais je ne sais pas ou
ps: les crochets fermants ont disparus au copier-collé
mais ils sonts présents dans mon code
de la forme [size=12px]
et comme je le dit
si je l'utilise seule ou avec d'autres chose que le gras
la balise de taille de police fonctionne
donc les codes de gras et de taille de police doivent se court-circuiter
mais je ne sais pas ou
ps: les crochets fermants ont disparus au copier-collé
mais ils sonts présents dans mon code
j'ai verifié justement
je te montre le code source de la selection :
1er cas :
texte en taille 22 et en vert
<span style="font-size: 22px;">coucou</span>
2nd cas :
texte en taille 22, en vert et en gras
<span style="font-size: 22px;"><strong><font color="green">coucou</font></strong></span>
voila
certaines doivent se court-circuiter
mais je ne sais pas comment
j'ai beau les essayer dans tout les sens
je te montre le code source de la selection :
1er cas :
texte en taille 22 et en vert
<span style="font-size: 22px;">coucou</span>
2nd cas :
texte en taille 22, en vert et en gras
<span style="font-size: 22px;"><strong><font color="green">coucou</font></strong></span>
voila
certaines doivent se court-circuiter
mais je ne sais pas comment
j'ai beau les essayer dans tout les sens