Sauts de ligne pas pris en compte à l'affichage (avec MySQL)

Sauts de ligne pas pris en compte à l'affichage (avec MySQL) - PHP - Programmation

Marsh Posté le 20-04-2006 à 18:27:53    

Bonjour,
 
(je ne sais pas si c’est 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
Reply

Marsh Posté le 20-04-2006 à 18:27:53   

Reply

Marsh Posté le 20-04-2006 à 18:53:44    

essaye nl2br(htmlentities($tontxt));

Reply

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 :
  1. html_entity_decode($ma_chaine)

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

Reply

Marsh Posté le 20-04-2006 à 19:57:56    

;)  je fais du meiux que je peux.
 
Voila la réponse à ta 2ème question : br2nl !!!

Reply

Marsh Posté le 21-04-2006 à 00:56:17    

p3kk4 a écrit :


Voila la réponse à ta 2ème question : br2nl !!!


 
N'existe pas ça mon grand  :sarcastic:

Reply

Marsh 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().


Message édité par rufo le 21-04-2006 à 08:41:09
Reply

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);
}

Message cité 1 fois
Message édité par daweed62 le 21-04-2006 à 09:31:14
Reply

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...
 
function br2nl($text)
{
   return  preg_replace('/<br\\s*?\/??>/i', '', $text);
}


Toi vois que ca existe naceroth!  :p

Message cité 1 fois
Message édité par p3kk4 le 21-04-2006 à 17:31:48
Reply

Marsh Posté le 21-04-2006 à 18:40:59    

p3kk4 a écrit :

Toi vois que ca existe naceroth!  :p


 
Moi voir que pas être dans fonction langage de base. Ca être trop dur pour toi donner code plutôt que nom ? :p

Reply

Marsh Posté le 24-04-2006 à 15:27:43    

:hello:
 
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 ?


Message édité par Profil supprimé le 24-04-2006 à 15:28:36
Reply

Marsh Posté le 24-04-2006 à 15:27:43   

Reply

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...

Reply

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 /> )

Reply

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)

Reply

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 :/

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed