Sauts de ligne pas pris en compte à l'affichage (avec MySQL) - PHP - Programmation
Marsh Posté le 20-04-2006 à 19:33:07
p3kk4 a écrit : essaye nl2br(htmlentities($tontxt)); |
C'est clair, net, précis, ultra rapide... et exactement ce que je cherchais à faire!
Merci beaucoup!
Si j'osais, j'ajouterais bien une ch'tite question supplémentaire:
Comment faire l'opération inverse sur la chaîne de caractères?
J'ai essayé avec
Code :
|
mais ça ne me vire pas les <br />
Existe t-il une fonction PHP toute simple ou il faut le faire de façon moins élégante "à la sauvage", en virant tous les <br /> de ma chaîne de caractère?
Re-d'avance merci
Marsh Posté le 20-04-2006 à 19:57:56
ReplyMarsh Posté le 21-04-2006 à 00:56:17
ReplyMarsh Posté le 21-04-2006 à 08:40:58
http://fr.php.net/manual/fr/function.nl2br.php
Comme on le voit sur cette page, y'a htmlspecialchars(), htmlentities() et str_replace().
Marsh Posté le 21-04-2006 à 09:30:17
J'ai eu le même problème il y a pas longtemps...
function br2nl($text)
{
return preg_replace('/<br\\s*?\/??>/i', '', $text);
}
Marsh Posté le 21-04-2006 à 17:31:20
daweed62 a écrit : J'ai eu le même problème il y a pas longtemps... |
Toi vois que ca existe naceroth!
Marsh Posté le 21-04-2006 à 18:40:59
p3kk4 a écrit : Toi vois que ca existe naceroth! |
Moi voir que pas être dans fonction langage de base. Ca être trop dur pour toi donner code plutôt que nom ?
Marsh Posté le 24-04-2006 à 15:27:43
Je me retrouve avec un problème plus ou moins similaire mais un peu plus complexe car je voudrais pouvoir insérer des tableaux html ou du texte dans mon champ .
Avec nl2br , les saut de ligne de mon texte seront pris en compte mais il faudrait que cette fonction se désactive lorsqu'elle rencontre des balises html.
Comment est-ce que je pourrais faire ?
Marsh Posté le 24-04-2006 à 15:55:15
voir strip_tags() et donner dans le second paramètre la liste des balises autorisées...
Marsh Posté le 24-04-2006 à 16:20:03
Il y'a peut être quelque chose qui m'échappe mais je vois mal comment je pourrais faire avec strip_tags vu que cette fonction supprime les balises html et php qui ne sont pas autorisées
C'est la même balise qui me permet de faire des sauts de ligne dans du texte et qui me pose problèmes dans les tableaux ... ( <br /> )
Marsh Posté le 24-04-2006 à 17:47:06
strip_tags retire d'une chaîne toutes les balises de caractères par défaut. Mais si tu veux en garder certaines, tu peux le préciser dans le 2ième argument. Maintenant, si tu veux concerver toutes les balises, tu peux utiliser str_replace() et remplacer les < et > par leurs entités html...(du reste, htmlentities() fait ça)
Marsh Posté le 25-04-2006 à 12:41:55
Je crois qu'on ne s'est pas compris mais merci quand même .
Je pense que je vais mettre une check box pour désactiver la fonction nl2br lors de l'enregistrement de code html dans la base de données mais j'aurais voulu faire ça autrement
Marsh Posté le 20-04-2006 à 18:27:53
Bonjour,
(je ne sais pas si cest la bonne catégorie ou si il faut poster ceci dans SGBD/SQL)
Dans un champ de texte multiligne, je rentre du texte en faisant des sauts de ligne (ENTER).
Avec $_POST, je récupère le contenu de ce champ et le stocke dans la BDD MySQL.
Mon problème est que le texte est stocké tout à la suite dans la BDD (il ne prend pas en compte les sauts de ligne). Et quand je réaffiche le tout, il n'y a bien sur pas de saut de ligne!
J'ai vu des posts sur ce forum parlant de htmlentities, mais je n'ai pas bien compris comment faire.
J'ai un peu tout essayé en vain.
Il y aurait une âme charitable qui pourrait me tuyauter sur le sujet?
Merci à tous.
Mploufeur
Webmaster en dilettante
Message édité par Mploufeur le 20-04-2006 à 18:28:48