DU BBCODE AU (X)HTML

cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 8 mai 2005 à 10:27
rickwakeman Messages postés 2 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 28 janvier 2010 - 28 janv. 2010 à 21:08
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/31264-du-bbcode-au-x-html

rickwakeman Messages postés 2 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 28 janvier 2010
28 janv. 2010 à 21:08
mais au fait qu'est ce que viennent faire ces crochets dans tes regex?! pour [http://]: à remplacer par http:// sans crochet.
rickwakeman Messages postés 2 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 28 janvier 2010
24 janv. 2010 à 17:41
il manque les styles de code_main et code_top.
cs_canibale Messages postés 33 Date d'inscription mardi 23 mai 2006 Statut Membre Dernière intervention 28 février 2009
12 sept. 2008 à 14:19
Complet, et ça marche en plus ! Bonne volonté et bon travail !
Sun-Burst Messages postés 11 Date d'inscription dimanche 9 novembre 2003 Statut Membre Dernière intervention 28 juillet 2007
28 juil. 2007 à 11:18
Merci bien cela règle mon problème :)
En attendant une confirmation ici j'en ai profité pour lire quelques tuto sur les regex, c'est ce qu'on appelle une nuit constructive :)

En tout cas merci encore pour ce code !
OniTalus Messages postés 39 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 20 juin 2005
28 juil. 2007 à 04:03
Hello,

Eh bien, tu veux juste mettre pt dans la balose [size] ou bien aussi dans le css ? Si c'est seulement dans la balise, remplace là par :

# // Bloc des balises [size]-/size
# $chaine = preg_replace('#\[size=([0-9]{1,2})pt](.+?)\/size#si','$2',$chaine);
Sun-Burst Messages postés 11 Date d'inscription dimanche 9 novembre 2003 Statut Membre Dernière intervention 28 juillet 2007
28 juil. 2007 à 02:56
Bonsoir, ayant besoin de traduire du BBcode en html je suis tombé sur ce code. Chapeau bas c'est pile poil ce qu'il me fallait.
J'ai cependant un problème bénin concernant texte
. Dans mon cas la balise est légèrement différente : [size=10pt]texte/size
Je ne connais pas vraiment les regex, encore moins la façon dont on les agence.

# // Bloc des balises [size]-/size
# $chaine = preg_replace('#\[size=([0-9]{1,2})](.+?)\/size#si','$2',$chaine);

Comment puis-je modifier cette regex pour qu'elle prenne en compte ma syntaxe ?
OniTalus Messages postés 39 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 20 juin 2005
16 avril 2007 à 22:12
Ah ui ? :p
bon ben je le mettrais à jour dès que j'aurais le temps alors (d'ailleurs, plusieurs améliorations à apporter.. :p)
zulot Messages postés 39 Date d'inscription dimanche 23 mai 2004 Statut Membre Dernière intervention 20 mai 2007
16 avril 2007 à 14:55
Vieux mais tres utile ;-)
OniTalus Messages postés 39 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 20 juin 2005
16 avril 2007 à 12:42
Ok, je mettrais à jour dès que possible (si j'ai pas la flemme, car ce code est vieux :p).
zulot Messages postés 39 Date d'inscription dimanche 23 mai 2004 Statut Membre Dernière intervention 20 mai 2007
16 avril 2007 à 10:17
Avec l'aide d'une personne sur un forum on a fait deux fonctions qui permettent de virer les multiple

function span_replace($span) {
if(preg_match_all('#style=["\'](.+?)["\']#',$span[0],$style)) {
return '';
}
return $span[0];
}

function delMultiSpan($texte){
$texte = preg_replace_callback('#(?:\s*)+#','span_replace',$texte);
return(preg_replace('#(){1,}#si','',$texte));
}
OniTalus Messages postés 39 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 20 juin 2005
13 avril 2007 à 18:16
Salut,

Oula, il est un peu vieux ce code, mais je vais faire du mieux possible pour t'aider.

Peut-être avec une autre regex par derrière, mais honnetement, je pense pas que ca vaut vraiment le détour...
zulot Messages postés 39 Date d'inscription dimanche 23 mai 2004 Statut Membre Dernière intervention 20 mai 2007
13 avril 2007 à 15:14
Existe il un moyen d'eviter l'imbrication des span?
j'en demande peut etre beaucoup;-)
cs_tokita Messages postés 7 Date d'inscription vendredi 3 juin 2005 Statut Membre Dernière intervention 5 juillet 2006
5 juil. 2006 à 16:56
bonjour à tous
je voudrais ajouter se script a mon code qui affiche le contenue d'un fichier txt mais je n'y arrive pas.
<?php
// on affiche :-)
if (file_exists ('./biographie.txt')) {
$fp = fopen ('./biographie.txt', 'r');
$read = stripslashes (fread ($fp, filesize ('./biographie.txt')));
$tab = explode ('
', $read);
$tab = array_reverse ($tab);
$read = implode ('
', $tab);
echo $read;
}

?>
OniTalus Messages postés 39 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 20 juin 2005
25 janv. 2006 à 16:53
Salut,

Voilà, j'ai corrigé les fautes, c'etait un remplacement abusif :P
skaterboss2000 Messages postés 29 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 12 juin 2006
25 janv. 2006 à 12:29
bien joué, ça m'a aidé pour un de mes projets ! :) merci beaucoup !
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
27 nov. 2005 à 23:31
ça doit être html_entity_decode() surement ;-)
cs_tsing Messages postés 1 Date d'inscription lundi 24 novembre 2003 Statut Membre Dernière intervention 27 novembre 2005
27 nov. 2005 à 22:53
lorsque j'utilise la balise bb [code=php] j'obtiens l'erreur suivante :

Fatal error: Call to undefined function: html_entity_dediv() in c:\documents and settings\cyril\bureau\lisa\include\php\function.php

C'est louche :)
Mais il est vrai que html_entity_dediv() n'existe pas. Merci pour vos lumières
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
21 juin 2005 à 21:17
ouais je le rajouterai tiens ^^
OniTalus Messages postés 39 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 20 juin 2005
21 juin 2005 à 21:13
J4ai regardé ton article sur ton site, mais comme tu l'a pas mis, j'ai eu un doute justement xD
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
21 juin 2005 à 21:12
bah non les expressions régulières sont plus lentes, mais bon elles restent largement gagnantes sur ce type d'utilisation, où prime la sécurité.

a +
OniTalus Messages postés 39 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 20 juin 2005
21 juin 2005 à 21:01
(re désolé pour les multiples)

Et en plus, compatible XHTML & plus rapide (les PCRE sont nettement plus rapide si je m'en souvien bien....)
OniTalus Messages postés 39 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 20 juin 2005
21 juin 2005 à 21:00
Donc en gros ma fonction reste gagnate pour le moment xD
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
21 juin 2005 à 20:59
et j'ajoute que des éléments de ton code ne sont pas compatible XHTML strict (désolé pour les multiples comms, y'a pas de fonction d'édit...)
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
21 juin 2005 à 20:58
de plus ton code n'est pas sécurisé, n'importe qui peut te hacker ta mise en page avec ça...
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
21 juin 2005 à 20:58
hum, tu peux faire deux array() plutôt que de faire 36 str_replace, ça sera plus propre et plus rapide.
vbguigui Messages postés 77 Date d'inscription vendredi 21 novembre 2003 Statut Membre Dernière intervention 7 mars 2007
21 juin 2005 à 20:51
C'est difficile tout ton code ...
Moi j'ai fait un beacoup lus simple :

function creer_html($nonhtml){
$nonhtml=str_replace("<","<",$nonhtml);
$nonhtml=str_replace(">",">",$nonhtml);
$nonhtml=str_replace('"',""",$nonhtml);
$nonhtml=str_replace("?","€",$nonhtml);
$nonhtml=str_replace("\n","
",$nonhtml);
$nonhtml=str_replace("[B]","",$nonhtml);
$nonhtml=str_replace("/B","",$nonhtml);
$nonhtml=str_replace("[U]","",$nonhtml);
$nonhtml=str_replace("/U","",$nonhtml);
$nonhtml=str_replace("[I]","",$nonhtml);
$nonhtml=str_replace("/I","",$nonhtml);
$nonhtml=str_replace("[URL=","",$nonhtml);
$nonhtml=str_replace("[EMAIL=","",$nonhtml);
$nonhtml=str_replace("[IMG]","",$nonhtml);
$nonhtml=str_replace("<code>","\n----
CODE, \n----
\n",$nonhtml);
$nonhtml=str_replace("",", \n
",$nonhtml);
$nonhtml=str_replace("
","\n----
QUOTE, \n----
",$nonhtml);
$nonhtml=str_replace("
","
",$nonhtml);
$nonhtml=str_replace("[LIST]","",$nonhtml);
$nonhtml=str_replace("[*]","<LI>",$nonhtml);
$nonhtml=str_replace("/LIST","",$nonhtml);
$nonhtml=str_replace("[FONT=","",$nonhtml);
$nonhtml=str_replace("[SIZE=","",$nonhtml);
$nonhtml=str_replace("/SIZE","",$nonhtml);
$nonhtml=str_replace("[COLOR=","",$nonhtml);
$nonhtml=str_replace("]","'>",$nonhtml);
return($nonhtml);
}

Voila
OniTalus Messages postés 39 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 20 juin 2005
21 juin 2005 à 20:05
Bon voilà c'est modif, tout est nickel =)
OniTalus Messages postés 39 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 20 juin 2005
21 juin 2005 à 19:47
Voilà, c'est fait, j'ai moifié le code =)

(Manque plus qu'a pouvoir perdsonnalisé les code m'enfin..... Faut que je voie)
OniTalus Messages postés 39 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 20 juin 2005
14 juin 2005 à 22:44
Bah oui je comptais leur demander :)
XwZ Messages postés 94 Date d'inscription dimanche 7 novembre 2004 Statut Membre Dernière intervention 13 septembre 2008
14 juin 2005 à 20:30
Décidement cette page est faite pour moi :p.
OniTalus >> ça veut dire qu'il faut encore essayer :p et c'est faisable regarde le forum de phpdebutant ;)
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
14 juin 2005 à 18:57
C'est excellent !!!! merci pour l'adresse je ne savais pas qu'une telle merveille existait ! Merci beaucoup ;)
OniTalus Messages postés 39 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 20 juin 2005
14 juin 2005 à 16:01
J'ai essayé, mais ca ne marche pas pour le PHP xD
XwZ Messages postés 94 Date d'inscription dimanche 7 novembre 2004 Statut Membre Dernière intervention 13 septembre 2008
14 juin 2005 à 15:44
slt,
MadM@tt >> pour savoir si tu es valide http://validator.w3.org/
OniTalus >> tu pourrais peut-être mettre le code en couleur ?
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
14 juin 2005 à 11:43
oki merci pour l'info, c'est ce que je pensais, d'ailleurs il vaut mieux coder trop "serieux" que pas assez...
Jvais utiliser ces normes xhtml dans mes pages je crois
OniTalus Messages postés 39 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 20 juin 2005
13 juin 2005 à 21:32
Si quelqu'un a une balise à suggerer, qu'il me le dise :)
XwZ Messages postés 94 Date d'inscription dimanche 7 novembre 2004 Statut Membre Dernière intervention 13 septembre 2008
13 juin 2005 à 21:26
re,
OniTalus >> je suis content de t'avoir aidé.
MadM@tt >> les norme xhtml sont applicable dans une page html d'ailleur c'est recommandé.
@++
OniTalus Messages postés 39 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 20 juin 2005
13 juin 2005 à 21:03
En fait, au début c'était du HTML tout court jusqu'a ce que Anthomicro em remonte les bretellles pour ainsi dire... Donc je dirais que oui, ca devraut marcher d'après ce que j'en sais ;-)
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
13 juin 2005 à 20:55
Une question : si on ecrit du xhtml dans une page html, ça marchera comme du code html c'est ça (enfin ça va pas planter quoi) ?
merci
OniTalus Messages postés 39 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 20 juin 2005
13 juin 2005 à 20:52
Eh bien je dirais que tu m'a bien depanné la dernière fois :-) (et comem tu le vois, j'ai encore plus bidouillé xD)
XwZ Messages postés 94 Date d'inscription dimanche 7 novembre 2004 Statut Membre Dernière intervention 13 septembre 2008
13 juin 2005 à 20:46
Slt,
Je ne savais pas que j'étais aussi, mais ça fait plaisir de voir des personnes qui en remerci d'autre (surtout si c'est moi :D).
Bonne continuation.
OniTalus Messages postés 39 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 20 juin 2005
16 mai 2005 à 18:46
Je vais la modif à l'instant, merci du conseil ;-)
zoumzoumman Messages postés 2 Date d'inscription jeudi 23 janvier 2003 Statut Membre Dernière intervention 12 septembre 2008
16 mai 2005 à 12:36
Très très bon script... je met un bon 10 haut la main!

Tiens par contre petite suggestion mais qui peux avoir son effet... Si on appel ce script tel quel, l'html n'est plus supporté, normal!Donc voilà la petite modif que j'ai apporté dans mes scripts:
*****************************************************************
function codebb($chaine,$htmlactif){
// Paramètre Utile
if ($htmlactif 0) $chaine nl2br(htmlentities($chaine));
*****************************************************************
(Il est vrai que ce script est fait pour n'utiliser que l'HTML, mais pour ceux qui veulent dépasser ce stade...)

Cela permet de prendre en compte le mélange des deux langages l'HTML et le BBcode.
- Si $htmlactif=1, prise en compte du mélange HTML et BBCode
- Si $htmlactif=0, seul le BBcode est autorisé

C'est tout bête mais vu que dans mon cas l'utilisateur peut et utilisé l'HTML et utilisé le BBcode, le problème se posait puisque l'HTML n'était plus interprété à défaut du bbcode!

Voilà, en espérant que cela serve à quelque un!
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
13 mai 2005 à 17:29
Dans ton cas oui.
OniTalus Messages postés 39 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 20 juin 2005
13 mai 2005 à 11:11
En gros, ca équivaut à la même chose que ?
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
13 mai 2005 à 07:34
si le text-align existe, mais pour aligner quelque chose, il faut que la largeur du div soit supérieure, sinon le div sera placé en fonction du contenu extérieur ou de ses paramètres float. Tu dois donc lui spécifier la même largeur que son conteneur pour aligner ce texte par rapport au conteneur.
OniTalus Messages postés 39 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 20 juin 2005
12 mai 2005 à 21:04
J'avais deja essayé avec le point-virgule, mais je n'ai pas encore testé pour le width:100%.....

Sinon, ca n'existe pas
$2
?
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
12 mai 2005 à 17:56
ça ne fonctionnera pas plus avec un point virgule ou non à la fin dans ce cas précis ;-)
cs_twisteurwin Messages postés 167 Date d'inscription mardi 21 septembre 2004 Statut Membre Dernière intervention 2 mai 2009
12 mai 2005 à 05:36
OniTalus a dit > ...Par contre, j'i beau essayer de remplacer les

avec des ...

remplace par :

tu as oublié le point virgule à la fin !

Le mieux serait de faire une feuille de style .css externe et de mettre que des et


Bon c'est mon avis... c'est aussi bien comme ca...
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
11 mai 2005 à 23:52
;-)

Faut que je refasse la section prog
OniTalus Messages postés 39 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 20 juin 2005
11 mai 2005 à 21:09
ok, je rajouterais ca tout à l'heure...

Sinon j'ai vu ton site, super interessant (au début, quand tu l'a donné l'url, j'avais pas réalisé :p)
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
11 mai 2005 à 20:50
normal que ça ne fonctionne pas, par défaut le span fait la largeur de ton texte, et l'alignement se fait par rapport à la largeur du span (je sais pas si tu me suis j'avoue que je m'exprime mal)

bref il faut que ton span ait une largeur égale ou presque au conteneur. Rajoute ça dans la CSS :

span{
width:100%;
}
OniTalus Messages postés 39 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 20 juin 2005
11 mai 2005 à 20:41
Voilà, j'a corrigé la balises :-)

(Par contre, j'i beau essayer de remplacer les

avec des , mais cela ne marche pas <_< (fdaudrait voir avec des

si ca se peut....

En tout cas merci, ca m'encourage franchement ^^
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
11 mai 2005 à 18:15
bon j'ai mis 10 histoire de remonter...
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
11 mai 2005 à 14:35
Moi je met 9/10 histoire de remonter la note parce que bcp d'efforts sont fournis.
En + la source commence à etre bien ;)
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
10 mai 2005 à 20:41
la balise est dépréciée
OniTalus Messages postés 39 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 20 juin 2005
10 mai 2005 à 20:05
Eh bien merci.... Si quelqu'un pense que je devrais rajouter une balise ou un truc à améliorer, postez des comments ^^
cs_twisteurwin Messages postés 167 Date d'inscription mardi 21 septembre 2004 Statut Membre Dernière intervention 2 mai 2009
10 mai 2005 à 06:31
Pinaiseuh la petite note 4/10 ???
Moi jt'e met un 7/10 car cette source est interessante et en plus elle est corrigée :-)
statopulos01 Messages postés 18 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 1 août 2007
9 mai 2005 à 19:36
OniTalus Messages postés 39 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 20 juin 2005
8 mai 2005 à 17:44
Bon bah c'est fait
OniTalus Messages postés 39 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 20 juin 2005
8 mai 2005 à 15:46
J'ai recorrigé quelques fautes, mais je n'arrive pas à remplacer le target="_blank" par une fonction jscript apropriée :(
OniTalus Messages postés 39 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 20 juin 2005
8 mai 2005 à 15:16
Bah pourtant, quand j'ai testé (avec les align, color, size, etc), ca marche (en local du moins).....
Voilà j'ai corrigé.
Jayadeva Messages postés 67 Date d'inscription mercredi 2 juillet 2003 Statut Membre Dernière intervention 1 septembre 2008
8 mai 2005 à 13:57
Ton code ne gère pas le chevauchement de balise ;)
OniTalus Messages postés 39 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 20 juin 2005
8 mai 2005 à 11:27
Merci beaucoup, je m'en vais tout de suite modifier mon code :)
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
8 mai 2005 à 11:12
pour le target non faut passer par javascript...

Pour le strike c'est en CSS : http://www.vulgarisation-informatique.com/css-polices.php
OniTalus Messages postés 39 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 20 juin 2005
8 mai 2005 à 11:00
(Re-salut)

Et j'oublaisi, y'a pas d'equivalent pour target="_blank" ?
OniTalus Messages postés 39 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 20 juin 2005
8 mai 2005 à 10:58
En fait, j'ai dja testé le , mais ca n'avait pas marché :(
Y' apas d'equivalent pour strike?

Merci de ces conseils ^^ (je m'en vais la modifier de suite :p)
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
8 mai 2005 à 10:27
Salut,

rajoute "px" à la fin de tes unités (par exemple pour le font-size)

Ensuite rends ton code compatible XHTML en remplaçant les balises dépréciées (,, ... par leurs nouvelles balises en XHTML)

Ensuite pour des citations utilise plutôt la sémantique : ou <cite> (<cite> pour de courtes citations) plutôt que la balise <code> qui sert pour ajouter du code comme son nom l'indique.

Idem pour le


tu peux faire plutôt un (il faut que ton span prenne toute la largeur du contenu pour aligner le texte).

la balise <strike> n'est également plus valide, tout comme le target="_blank" (l'attribut target n'est plus valide)

a +
Rejoignez-nous