Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1253 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Melange de bbcode et html avec la fonction "nl2br" [résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Melange de bbcode et html avec la fonction "nl2br" [résolu]

n°601488
bodbod
Planquez vous, bodbod arrive..
Posté le 03-01-2004 à 17:10:49  profilanswer
 

Bonjour a tous,
 
Voila je me retrouve face a un petit probleme.
J'ai un texte dans la base que je sors en faisant un $var = nl2br($var) ; pour ajouter des saut de lignes.
 
Mais la ou ca cloche, c'est quand je veux ajouter un peux de html.
Car du coup, il me met un <br> entre les balides.
 
Y a t il un moyen d'utiliser nl2br partout sauf entre deux indicateurs. Pour moi, les indicateur serait <body> et </body> car j'ai ces balises en debut/fin de code html.
 
merci


Message édité par bodbod le 09-01-2004 à 22:20:59
mood
Publicité
Posté le 03-01-2004 à 17:10:49  profilanswer
 

n°601494
Kyle
Posté le 03-01-2004 à 17:13:57  profilanswer
 

le nl2br fait le sur le texte avant de l'insérer dans la base

n°601499
bodbod
Planquez vous, bodbod arrive..
Posté le 03-01-2004 à 17:16:15  profilanswer
 

oui mais en fait, pour entrer dans la base ainsi que pour editer le texte, je passe par un texte area qui de coup se retrouve avec du bbcode et du html melangé

n°601502
Kyle
Posté le 03-01-2004 à 17:17:14  profilanswer
 

ha, dans le textarea fait un str_replace("<br />","",$ton_texte);

n°601503
bodbod
Planquez vous, bodbod arrive..
Posté le 03-01-2004 à 17:17:47  profilanswer
 

Je precise que le bbcode sera toujours hors des balises <body>

n°601505
Kyle
Posté le 03-01-2004 à 17:18:31  profilanswer
 

bodbod a écrit :

Je precise que le bbcode sera toujours hors des balises <body>


 
pourquoi cela ?
le contenu doit toujours se trouver dans le body !

n°601508
bodbod
Planquez vous, bodbod arrive..
Posté le 03-01-2004 à 17:20:44  profilanswer
 

Bon alors on ne se comprend pas trop.
Voici une partie du texte dans la base :
 
[taille=grand][align=centre]Limoges avril 2004[/align][/taille]<br>
<body vlink="#0000FF" bgcolor="#FFFDF2" leftMargin=0 topMargin=0 rightMargin=0>
        <TABLE width=100% border=0 align="center" cellPadding=0
 
 ...
 
            </TR>
          </TBODY>
        </TABLE>
</body>

Merci de votre compréhension ;)
[color=#FF0000] SONDAGE REOUVERT,
VOUS POUVEZ Y ALLER MAINTENANT ;)[/color]
 
[taille=petit]Organisateurs : mmarques et mr_alexxxx
Gestion : mmarques
[/taille]

 
 
 
bbcode
htmle


Message édité par bodbod le 03-01-2004 à 17:25:26
n°601509
ChamOis
Posté le 03-01-2004 à 17:20:45  profilanswer
 

bodbod a écrit :

oui mais en fait, pour entrer dans la base ainsi que pour editer le texte, je passe par un texte area qui de coup se retrouve avec du bbcode et du html melangé


 
ben apres à l'edition entre les balises textarea tu mets :
<? echo str_replace("<br />","",$tontexte); ?>


---------------
Hey! You wanna dance?
n°601513
Kyle
Posté le 03-01-2004 à 17:23:05  profilanswer
 

bodbod a écrit :

Bon alors on ne se comprend pas trop.
Voici une partie du texte dans la base :
 
[taille=grand][align=centre]Limoges avril 2004[/align][/taille]<br>
<body vlink="#0000FF" bgcolor="#FFFDF2" leftMargin=0 topMargin=0 rightMargin=0>
        <TABLE width=100% border=0 align="center" cellPadding=0
 
 ...
 
            </TR>
          </TBODY>
        </TABLE>
</body>

Merci de votre compréhension ;)
[color=#FF0000] SONDAGE REOUVERT,
VOUS POUVEZ Y ALLER MAINTENANT ;)[/color]<br><br>
 
[taille=petit]Organisateurs : mmarques et mr_alexxxx<br>
Gestion : mmarques
[/taille]

 
 
 
bbcode
htmle
 


 
Pourquoi réouvrir un <body>, j'imagine qu'il doit etre deja ouvert non ?

n°601515
bodbod
Planquez vous, bodbod arrive..
Posté le 03-01-2004 à 17:23:38  profilanswer
 

kyle a écrit :


 
pourquoi cela ?
le contenu doit toujours se trouver dans le body !

En fait c'est une partie de code qui est inclue dans une autre page. Et sans passer par les balise <body>, les tableau sont tout deformé.
En mettant les balide, ca revient un peu a faire un include

mood
Publicité
Posté le 03-01-2004 à 17:23:38  profilanswer
 

n°601519
bodbod
Planquez vous, bodbod arrive..
Posté le 03-01-2004 à 17:27:03  profilanswer
 

kyle a écrit :


 
Pourquoi réouvrir un <body>, j'imagine qu'il doit etre deja ouvert non ?

Oui mais en mettant le html sans les balise, les tableau sont tout deformé.
En fait, c'est un tableau qui entre dans d'autre tableau.

n°601522
Kyle
Posté le 03-01-2004 à 17:28:58  profilanswer
 

bodbod a écrit :

En fait c'est une partie de code qui est inclue dans une autre page. Et sans passer par les balise <body>, les tableau sont tout deformé.
En mettant les balide, ca revient un peu a faire un include


 
pas tres propre tout ca  :sweat:  
si tes tableaux sont explosés c'est qu'il y a un probleme de montage de la page...

n°601528
bodbod
Planquez vous, bodbod arrive..
Posté le 03-01-2004 à 17:31:39  profilanswer
 

kyle a écrit :


 
pas tres propre tout ca  :sweat:  
si tes tableaux sont explosés c'est qu'il y a un probleme de montage de la page...

Ben oui mais le probleme, c'est que c'est pas moi qui est fait le code html
 
Ou sinon, c'est un peu de la bidouille, mais y a t il un moyen d'enlever le <br> qui pourrait se trouver entre les deux balides.
Tu voix ce que je veux dire :
Selection la partie qui se trouve entrre <body> et y remplcer tout les <br>

n°601530
Kyle
Posté le 03-01-2004 à 17:33:21  profilanswer
 

on te l'a dit plus haut 2 fois :
 
<textarea><? echo str_replace("<br />","",$tontexte); ?></textarea>

n°601534
bodbod
Planquez vous, bodbod arrive..
Posté le 03-01-2004 à 17:37:40  profilanswer
 

kyle a écrit :

on te l'a dit plus haut 2 fois :
 
<textarea><? echo str_replace("<br />","",$tontexte); ?></textarea>

on se comprend pas trop  :sweat:  
En fait une partie du textarea dois avoir les <br>(bbcode) et l'autre partie ne dois pas en avoir (html)

n°601819
bodbod
Planquez vous, bodbod arrive..
Posté le 04-01-2004 à 11:07:40  profilanswer
 

Bon apres qq heure, j'ai ete obligé de bidouiller un truc qui me plait que moyennement mais comme ca marche.
 
Je passe d'abord un nl2br au debut,
ca met un <br /> a chaque retour.
Ensuite je remplace le ><br /> par > qui a pour effet de supprimé le <br /> qui se trouve a travers le code html et le tour est joué.
 
Seul contrainte, avoir un code html propre pour que chaque ligne finnissent par un >
 
merci ;)


Message édité par bodbod le 04-01-2004 à 11:08:36
n°601842
ChamOis
Posté le 04-01-2004 à 12:28:15  profilanswer
 

ske tu peux peut-etre faire c'est un nouveau tag genre [html] et tout ce qui est dedans tu ne lui appliques pas de nl2br();


---------------
Hey! You wanna dance?
n°602002
bodbod
Planquez vous, bodbod arrive..
Posté le 04-01-2004 à 16:16:16  profilanswer
 

chamois a écrit :

ske tu peux peut-etre faire c'est un nouveau tag genre [html] et tout ce qui est dedans tu ne lui appliques pas de nl2br();

Comment tu fais ca ?
C'est en fait ce que je cherche


---------------
http://www.menuiseriemerceron.fr - http://www.atlantiquecoloration.fr
n°605153
Kezakel
Posté le 07-01-2004 à 20:42:14  profilanswer
 

dans la base, tu enregistres le code avec le sauts de lignes bruts, saisis depuis le textarea
 
juste avant un affichage, faut passer nl2br, sauf si l'affichage se fait dans un textarea

n°605174
bodbod
Planquez vous, bodbod arrive..
Posté le 07-01-2004 à 21:05:41  profilanswer
 

non ben vous avez pas l'air d'avoir compris mon expliquation. Surement moi qui m'exprime mal.
 
Voici un exemple de texte dans le textarea :

Code :
  1. texte
  2. [color=couleur]texte[/color]
  3. <table>
  4.   <tr>
  5.     <td>trucmuche</td>
  6.   </tr>
  7. </table>
  8. texte2
  9. [color=couleur]texte3[/color]
  10. ...
  11. et pourquoi encore du html ici...


Et la on voit bien que les <br> vont trainer a travers le html mais sera tres bien placé dans le bbcode situé au debut et a la fin


---------------
http://www.menuiseriemerceron.fr - http://www.atlantiquecoloration.fr
n°605317
belgique
Posté le 08-01-2004 à 02:22:04  profilanswer
 

preg_replace(#(l'expression qui matche jusque ta table)(<table.../table> )(le reste)#(ici faut mettre le code pour qu'il interprète la chaine de sortie),nl2br($1).$2.nl2br($3),$tontext)
 
C'est méga lour à lire , je sais mais ça marche. Cherche un peu.

n°605852
bodbod
Planquez vous, bodbod arrive..
Posté le 08-01-2004 à 20:56:59  profilanswer
 

$var = preg_replace("#(XX|</table> )(.*?)(<table> )(.*?)(</table> )(.*?)(<table>|YY)#si", $1.nl2br($2).$3.$4.nl2br($6).$6, $var);
 
Un truc qui ressemblerai un peu a ca ?
 
Par contre, a XX et YY, je sais pas trop quoi mettre XX correspondrai au debut debut et YY a la fin.
Si j'ai mis les XX|</table> et l'autre, c'est pour prevoir le melange de plsieur partie bbcode html.


Message édité par bodbod le 08-01-2004 à 20:58:40

---------------
http://www.menuiseriemerceron.fr - http://www.atlantiquecoloration.fr
n°606023
belgique
Posté le 09-01-2004 à 00:11:48  profilanswer
 

je crois qu'il faut mettre esi et non si tout seul. Le e activerait l'interprétation php de la chaine de retour.
 
 $var = preg_replace("#?!(<table>.*?</table> )#esi",nl2br('\\1'),$var);  
 
CA doit marcher un truc du genre. Ca prend tout ce qui n'est pas entre balises table et applique le traitement. Pas le temps de vérifier ;)

n°606657
bodbod
Planquez vous, bodbod arrive..
Posté le 09-01-2004 à 18:07:39  profilanswer
 

belgique a écrit :

je crois qu'il faut mettre esi et non si tout seul. Le e activerait l'interprétation php de la chaine de retour.
 
 $var = preg_replace("#?!(<table>.*?</table> )#esi",nl2br('\\1'),$var);  
 
CA doit marcher un truc du genre. Ca prend tout ce qui n'est pas entre balises table et applique le traitement. Pas le temps de vérifier ;)


 
Warning: Compilation failed: nothing to repeat at offset 0 in c:\serveur\www\bouffe.php on line 56  :sweat:


---------------
http://www.menuiseriemerceron.fr - http://www.atlantiquecoloration.fr
n°606676
belgique
Posté le 09-01-2004 à 18:32:15  profilanswer
 

$var = preg_replace("#?!(<table>.*?</table> )#esi","nl2br('\\1')",$var);  
 
C'est peut ere toujours incorrect mais bon, cherche un peu ;)

n°606704
bodbod
Planquez vous, bodbod arrive..
Posté le 09-01-2004 à 19:26:01  profilanswer
 

$var = preg_replace("#(.*?)(<table>.*?</table> )#esi","nl2br('\\1')",$var);
 
En faisant ca, le message disparait mais le resultat n'est pas au rdv.
 
Je crois que je vais finir par garder ma methode barbare.


---------------
http://www.menuiseriemerceron.fr - http://www.atlantiquecoloration.fr
n°606735
belgique
Posté le 09-01-2004 à 20:16:14  profilanswer
 

$var = preg_replace("#(?!(<table>.*?</table> ))#esi","nl2br('\\1')",$var);    
et ça?

n°606777
bodbod
Planquez vous, bodbod arrive..
Posté le 09-01-2004 à 21:30:17  profilanswer
 

Ben y a plus d'erreur, tout les truc sont affiché mais y a pas de saut de ligne :(
 
La fonction preg_replace, j'arrive a me debrouiller quand c'est simple mais la j'ai du mal a suivre.


---------------
http://www.menuiseriemerceron.fr - http://www.atlantiquecoloration.fr
n°606789
belgique
Posté le 09-01-2004 à 21:48:55  profilanswer
 

$var = preg_replace("#<table>(.*?)</table>#esi","'<table>'.stripslashes(str_replace('<br />','','\\1')).'</table>'",$var);    
Ca devrait marcher ça. Tu fais un nl2br avant sur var.

n°606815
bodbod
Planquez vous, bodbod arrive..
Posté le 09-01-2004 à 22:20:34  profilanswer
 

:bounce:  
 
OK ca roule, j'ai tres legerement modifié le truc pour mettre une balise "special".
 
$var = preg_replace("#<body>(.*?)</body>#esi","'<body>'.stripslashes(str_replace('<br />','','\\1')).'</body>'", $var );
 
Au debut, ca marchait pas car mes balise <table> etait plutot de genre <table .....></table>
 
Je pense que je vais creer des balise que je vais nommé [html] dans lequel tout code html devra se trouver
 
 ;)


---------------
http://www.menuiseriemerceron.fr - http://www.atlantiquecoloration.fr
n°606831
belgique
Posté le 09-01-2004 à 22:49:19  profilanswer
 

Tu peux faire : $var = preg_replace("#<table(.*?)</table>#esi","'<table'.stripslashes(str_replace('<br />','','\\1')).'</table>'",$var);


Message édité par belgique le 09-01-2004 à 22:52:02
n°606832
bodbod
Planquez vous, bodbod arrive..
Posté le 09-01-2004 à 22:51:44  profilanswer
 

Ah oui, c'est vrai aussi ca
 
Enfin bon, je vais voir ca avec le futur utilisateur.
 
merci a toi ;)


---------------
http://www.menuiseriemerceron.fr - http://www.atlantiquecoloration.fr
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Melange de bbcode et html avec la fonction "nl2br" [résolu]

 

Sujets relatifs
[HTML] Toujours Problème de .htaccesshelp tableau en html
return !0 en fin de fonction. D'ou viens cette notation ?[PHP] Pourquoi ca marche pas ? [résolu](en effet c'était tout bete)
[HTML] Changer la couleur du border d'une photo...?[HTML] caractères spéciaux html : tous les utiliser ??
[HTML/JS] Case de formulaire qui change de couleur[html/javascript] une erreur bizarre
[HTML] Problème lié a un kit[PHP] Récuperer un code HTML déjà généré ? (explication inside)
Plus de sujets relatifs à : Melange de bbcode et html avec la fonction "nl2br" [résolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR