Page 1 sur 1

textarea to text file : problème de saut de ligne

Posté : 30 mai 2011, 18:36
par VaN
Bonsoir,

J'essaye de créer un fichier texte à partir d'un formulaire, dont un textarea.

Voici mon code :
// Creation du fichier texte
			$filename = $request_id . '.txt';
			$handle = fopen('requests/' . $filename, "w");
			fwrite($handle,  "Description : " . $clean['request_description'] . "\n");
			fclose($handle);
Si dans le textarea "request_description", je tape :
Lorem
ipsum
je vais me retrouver avec un fichier texte contenant :
Lorem\r\nipsum
, ce que je ne comprend pas bien. Pourquoi le retour chariot est-il mal interprété par fwrite() ?
J'ai essayé un str_replace("\r\n", "\n", $clean['request_description'])); mais aucun changement.

Re: textarea to text file : problème de saut de ligne

Posté : 31 mai 2011, 09:07
par Ez3kiel
Bonjour,

Tu fais ça sans base de données ?

Re: textarea to text file : problème de saut de ligne

Posté : 31 mai 2011, 09:20
par macgawel
Bonjour.

A quoi correspond ton $clean['request_description'], au juste ?

Re: textarea to text file : problème de saut de ligne

Posté : 31 mai 2011, 09:49
par VaN
Bonjour,

Tu fais ça sans base de données ?
Si, j'insère ensuite le contenu du formulaire dans une base. Mais le client veut en plus recevoir le contenu du formulaire dans un fichier texte, envoyé par mail.



Bonjour.

A quoi correspond ton $clean['request_description'], au juste ?
$clean['request_description'] = mysql_real_escape_string($_POST['request_description']);
Et $_POST['request_description'] est mon textarea.

Re: textarea to text file : problème de saut de ligne

Posté : 31 mai 2011, 10:02
par macgawel
RTFM
mysql_real_escape_string() appelle la fonction mysql_escape_string() de la bibliothèque MySQL qui ajoute un slash aux caractères suivants : NULL, \x00, \n, \r, \, ', " et \x1a.
En clair :
1. Tu récupères ta chaîne Lorem\r\nipsum
2. Tu l'échappes avec mysql_real_escape_string => Lorem\\r\\nipsum
3. Tu l'écris dans ton fichier => Lorem\r\nipsum.
C'est ce qui est écrit. Le "\\" est interprété par PHP comme "le premier slash echappe le deuxième qui est traité comme un caractère"...

Re: textarea to text file : problème de saut de ligne

Posté : 31 mai 2011, 10:20
par VaN
RTFM
mysql_real_escape_string() appelle la fonction mysql_escape_string() de la bibliothèque MySQL qui ajoute un slash aux caractères suivants : NULL, \x00, \n, \r, \, ', " et \x1a.
En clair :
1. Tu récupères ta chaîne Lorem\r\nipsum
2. Tu l'échappes avec mysql_real_escape_string => Lorem\\r\\nipsum
3. Tu l'écris dans ton fichier => Lorem\r\nipsum.
C'est ce qui est écrit. Le "\\" est interprété par PHP comme "le premier slash echappe le deuxième qui est traité comme un caractère"...
mmhh bien vu.. J'ai tellement l'habitude de passer toutes mes variables dans un mysql_real_escape_string() que j'en ai oublié les effets :p