str_replace qui ne fonctione pas ...

str_replace qui ne fonctione pas ... - PHP - Programmation

Marsh Posté le 24-05-2005 à 07:56:09    

Voilà mon problème : je récupère un message dans un <textarea>
 
Dans la page de traitement du formulaire, je veux remplacer les fins de ligne du message par des <br> avant de l'envoyer dans la bdd.
Voici mon code :

Code :
  1. $description=$_POST['description'];
  2. $description = str_replace('\n','<br>',$description);
  3. $description = addslashes($description);


 
Mais, quand je vais chercher le message dans la bdd pour l'afficher, je n'ai qu'une seule ligne à l'affichage :/

Reply

Marsh Posté le 24-05-2005 à 07:56:09   

Reply

Marsh Posté le 24-05-2005 à 07:57:22    

http://fr.php.net/manual/fr/function.nl2br.php


Message édité par afbilou le 24-05-2005 à 07:57:32
Reply

Marsh Posté le 24-05-2005 à 07:59:45    

ok, merci beaucoup, je la connaissais pas celle-là :jap:

Reply

Marsh Posté le 24-05-2005 à 08:08:44    

Par contre, si je veux revenir en arrière, je fais comment ?
Je viens d'essayer ça :

Code :
  1. $description = str_replace('<br />','\n',$description);


Ca m'enlève bien les <br />, mais ça me rajoute un saut de ligne.
 
Alors j'ai essayé ceci :

Code :
  1. $description = str_replace('<br />\n','\n',$description);


Mais ça ne fonctionne pas.
 
Comment puis-je faire ?


Message édité par nero27 le 24-05-2005 à 08:10:44
Reply

Marsh Posté le 24-05-2005 à 08:10:20    

Héhé, faut justement ne pas stocker les <br /> dans la base. Il faut faire le nl2br au moment de l'affichage, et garder les \n dans la base ;)

Reply

Marsh Posté le 24-05-2005 à 08:11:10    

ok, je vais faire comme ça alors : merci :)

Reply

Marsh Posté le 24-05-2005 à 10:50:21    

nero27 a écrit :

Par contre, si je veux revenir en arrière, je fais comment ?
Je viens d'essayer ça :

Code :
  1. $description = str_replace('<br />','\n',$description);


Ca m'enlève bien les <br />, mais ça me rajoute un saut de ligne.
 
Alors j'ai essayé ceci :

Code :
  1. $description = str_replace('<br />\n','\n',$description);


Mais ça ne fonctionne pas.
 
Comment puis-je faire ?


 
Normal, quand tu utilise des ' a la place de " les characteres speciaux ne sont pas interpretes.
Donc il recherche \n et non pas "le charactere saut de ligne".
 
Donc essaye :

Code :
  1. $description = str_replace('<br />."\n","\n",$description);


 
Mais il est preferable de ne modifier le texte qu'a l'affichage, c'est a dire ne pas stocker les br dans la table, mais les ajouter uniquement lors de l'affichage.

Reply

Marsh Posté le 24-05-2005 à 11:22:00    

Ok, merci pour l'info :jap:

Reply

Sujets relatifs:

Leave a Replay

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