Salut, comment faites-vous pour conserver la mise en forme dans un textarea lors de son passage dans une variable.
Comme ici, par exemple, où les retours à la ligne et les espaces sont conservés...
Et comment faites-vous pour réafficher le tout pareil qu'à l'écriture ?
avant la mise en variable transforme les avec des elements separateur (de memoire /n c retour a la ligne ..)
genre une convertion de tous les espaces en &ESP& bon ok ca fais 2 traitements mais bon a froid je vois ca comme ca (j'suis mort j'ai pas bcp dormis )
---------------
I don't wanna pasify you i don't wanna drag you down
but i'm feelin like a prisoner like a stranger in a no named town
i see all the angry faces afraid that could be you and me
talkin about what might have been i'm thinkin about what i used to be
Aussi pour eviter qu'un couillon foire toute ta présentation en tableau (si tableau il y a) ou simplement insert des truc en JS, mieux vaut faire un htmlentities() avant le nl2br()
Aussi pour eviter qu'un couillon foire toute ta présentation en tableau (si tableau il y a) ou simplement insert des truc en JS, mieux vaut faire un htmlentities() avant le nl2br()
? tu peux m'espliker ? paske on peut coller du js qui marche dans un textarea ?
En gros ton truc, si tu veut restituer tel quel ce que tappe l'utilisateur dans ton textarea, tu va te retrouver face a quelques probleme :
Que va-t-il se passer si la personne tappe "</td></tr></table>" ?
Ou </textarea> s'il y a une possibilitée d'edition ?
Donc pour eviter que n'importe qui bousille tout (volontairement ou non bien sur) il faudrait modifier les "<" et compagnie en leur caractere "&code;" ce que fait htmlentities().
Comme ca quand tu balance dans ta page html ce que l'utilisateur a tapper, celui ci vois le "<" mais il n'est pas interpreté comme une balise html.
A propos du JS : bien si on peut entrer "<table>" on peut tres bien entrer un javascript opérationnel afin, je ne sais pas, de récuperer des cookies...
Sinon, il ne faut pas utiliser : $string2=htmlentities(nl2br(stripslashes($string1))); mais : $string2=nl2br(htmlentities(stripslashes($string1)));
C'est pour ça que la majorité des forums utilisent des tags [ img ] ? mais il faut faire le remplacement au fur et à mesure ? y a moyen de le faire rapidement ?
La raison exacte des crochets, je sais pas d'où ca viens, mais bon, pour les forum, ca evite de remplacer ca qui est entre "code de <" et "code de >" (car une fois ta chaine passée dans htmlentities, tes "<" deviennent "&code_machincose;" ) par un remplement direct de ce qu'il y a entre crochets (qui restent inchangé par htmlentities)
Pour faire un remplacement, c'est dommage que les archives ppc soient mortes car siegone m'avait tres bien répondu sur ce meme sujet ya un an, tu fait ca avec preg_replace()...
Genre le code c'est un truc du genre :
$new=preg_replace("[\[img\](&*?)\[/img\]]", "<img src=\"\\1\" title=\"\\1\" alt=\"\\1\">", $old, $fois);
Avec :
- $new ta chaine avec les element entre [imgxx[/img] remplacé par <img scr="xx" title="xx" alt="xx">
- $old ta chaine d'origine avec les [img] et tout
- $fois le nombre maximum de fois que le remplacement dans se faire. Si tu vire ce parametre ca le fait pour tous
Et la chaine en rouge et un truc a la con que j'ai mis pour meubler, je me souviens plus de ce que c'etait, je te retrouve ca pour demain si personne n'a vu le topic et donné l'info Et gros ca sert a dire "tout le bordel qui se trouve entre [img] et [/img] je le fout dans une variable temporaire", variable temporaire que l'on restitue dans le changement par \\1 (là encore si ma mémoire ne flanchie pas )
Bon, en esperant que je ne soit pas a coté de la plaque
Encore un topic de déterré de sous les fagots ^__^
Cette ligne est à placer lors de l'affichage de ta variable (ici $corps_news), essentiellement afin que ton texte retrouve ces retours à la ligne.
Pour $corps_news, c'est juste ta varible qui contient ton texte à formatter. Ca peut être une variable venant d'un formulaire comme un texte récupéré dans une base de données.