Comment supprimer les retours chariot d'une variable

Petit nouveau ! | 3 Messages

19 août 2005, 01:05

Salut,

J'ai une zone de texte, dont je place le contenu dans une variable, pour la rentrer dans une table mysql. J'ai utilisé la fonction nl2br() pour que les retours chariot d'origine s'affichent ensuite. Le problème c'est que j'affiche cette chaine au moyen d'un petit script javascript. Mais, quand il y a des retours chariot dans cette chaine, ça fait bugger le script javascript.

Je voudrais donc supprimer ces retours chariot de la chaine (puisque nl2br() a déjà rajouté des "<br />" de toute façon).
//J'ai essayé sans succès :
str_replace(chr(13),'',$chaine)
//et
str_replace('\\n','',$chaine)
//(13 c'est le n° ASCII du retour chariot)
Quelqu'un pourrait-il m'aider svp ?

Mammouth du PHP | 19672 Messages

19 août 2005, 09:13

Suggestion : Enregistre ton texte sans le transformer et n'utilise nl2br qu'au moment d'afficher le texte. ce sera infiniment plus simple.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 3 Messages

19 août 2005, 11:59

Tu veux dire passer la chaine à la fonction nl2br() après l'extraction de la base de données ? 0_o
ça ne changera rien au problème : les retours chariot y seront toujours...

Je viens aussi d'essayer, à tout hasard...
str_replace('\n','',$chaine)
sans résultat...

Eléphant du PHP | 55 Messages

19 août 2005, 12:22

Essaye :
str_replace('<br />','',$chaine)

ViPHP
ViPHP | 1380 Messages

19 août 2005, 12:45

Tu veux dire passer la chaine à la fonction nl2br() après l'extraction de la base de données ? 0_o
ça ne changera rien au problème : les retours chariot y seront toujours...

Je viens aussi d'essayer, à tout hasard...
str_replace('\n','',$chaine)
sans résultat...
Rappel, windows génère des retours lignes composés de \r\n --> chr(13).chr(10)

Linux: \n char(10)

Ensuite, il faut les doubles guillemets quand tu utilises \r\n ou \n
str_replace("\r\n", null, $txt)
Enfin, fais attention, car tu sembles vouloir remplacer un retour ligne par un null. Ca pourrait poser des problèmes de mise en page comme pour le texte:

Code : Tout sélectionner

Première ligne deuxième ligne!
Qui deviendra:

Code : Tout sélectionner

Première lignedeuxième ligne!
Il y a des solutions à tous ces problèmes.
ripat

Petit nouveau ! | 3 Messages

19 août 2005, 13:07

ça maaarche !! (avec str_replace("\r\n", null, $txt)) Merci beaucoup :D (je peux remplacer les retours chariot par des null sans pb puisque nl2br() a déjà rajouté des <br /> avant)

Mammouth du PHP | 19672 Messages

19 août 2005, 13:13

[Résolu] alors :?:
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
ViPHP | 1380 Messages

19 août 2005, 13:18

ça maaarche !! (avec str_replace("\r\n", null, $txt)) Merci beaucoup :D (je peux remplacer les retours chariot par des null sans pb puisque nl2br() a déjà rajouté des <br /> avant)
Et pour ne pas oublier les irréductibles / pionniers / fanatiques / visionnaires (au choix) Linux:
str_replace(array("\r\n", "\n"), null, $txt);
ripat