Page 1 sur 1

Comment supprimer les retours chariot d'une variable

Posté : 19 août 2005, 01:05
par Nécropotåme
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 ?

Posté : 19 août 2005, 09:13
par Cyrano
Suggestion : Enregistre ton texte sans le transformer et n'utilise nl2br qu'au moment d'afficher le texte. ce sera infiniment plus simple.

Posté : 19 août 2005, 11:59
par Nécropotåme
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...

Posté : 19 août 2005, 12:22
par Bobulum
Essaye :
str_replace('<br />','',$chaine)

Posté : 19 août 2005, 12:45
par Ripat
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.

Posté : 19 août 2005, 13:07
par Nécropotåme
ç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)

Posté : 19 août 2005, 13:13
par Cyrano
[Résolu] alors :?:

Posté : 19 août 2005, 13:18
par Ripat
ç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);