\r\n fichier texte php
dallap
-
dallap -
dallap -
Bonjour,
Après avoir lu de nombreux forums je n'ai pas trouvé la réponse à mon problème.
Je stocke un texte entré pas l'utilisateur dans un fichier texte et j'essaye ensuite de l'afficher (pour établir un système de messagerie). Le problème est qu'à la restitution je vois des \r\n apparaitre et je n'arrive pas à les enlever...
voici le code pour écrire dans le fichier texte:
$message = mysql_real_escape_string(stripslashes($_POST['message']));
$desinataire = mysql_real_escape_string(stripslashes($_POST['destinataire']));
$start = date('d/m/Y H:i:s');
$fp = fopen("../file.txt", "a");
fputs ($fp, "$start $destinataire \n");
fputs ($fp, "$message \n");
fclose($fp);
la restitution:
$fp2 = @fopen("file.txt","r");
while (!@feof($fp2) && $i < $lignes){
if ($i >= $fin){
$ligne1 = fgets($fp2, 2000);
$ligne2a = fgets($fp2, 2000);
$result = preg_replace("/\r\n/","\n", $ligne2a);
$result = preg_replace("/\r/","\n", $result);
$ligne2 = preg_replace("/\n/","<br />", $result);
$page = '<tr><td>'.substr($ligne1,0,19).'</td><td>'.substr($ligne2,20,2000).'</td><td>'.substr($ligne2,0,2000).'</td><tr/>' . $page;
et j'obtiens ceci:
c\'estle texte\r\nqui s\'affiche
pourriez vous m'aider?
merci! :)
Après avoir lu de nombreux forums je n'ai pas trouvé la réponse à mon problème.
Je stocke un texte entré pas l'utilisateur dans un fichier texte et j'essaye ensuite de l'afficher (pour établir un système de messagerie). Le problème est qu'à la restitution je vois des \r\n apparaitre et je n'arrive pas à les enlever...
voici le code pour écrire dans le fichier texte:
$message = mysql_real_escape_string(stripslashes($_POST['message']));
$desinataire = mysql_real_escape_string(stripslashes($_POST['destinataire']));
$start = date('d/m/Y H:i:s');
$fp = fopen("../file.txt", "a");
fputs ($fp, "$start $destinataire \n");
fputs ($fp, "$message \n");
fclose($fp);
la restitution:
$fp2 = @fopen("file.txt","r");
while (!@feof($fp2) && $i < $lignes){
if ($i >= $fin){
$ligne1 = fgets($fp2, 2000);
$ligne2a = fgets($fp2, 2000);
$result = preg_replace("/\r\n/","\n", $ligne2a);
$result = preg_replace("/\r/","\n", $result);
$ligne2 = preg_replace("/\n/","<br />", $result);
$page = '<tr><td>'.substr($ligne1,0,19).'</td><td>'.substr($ligne2,20,2000).'</td><td>'.substr($ligne2,0,2000).'</td><tr/>' . $page;
et j'obtiens ceci:
c\'estle texte\r\nqui s\'affiche
pourriez vous m'aider?
merci! :)
3 réponses
-
$mot = 'c\'estle texte\r\nqui s\'affiche';
$mot = str_replace("\r\n";" ";$mot);
$mot = stripslashes($mot);
je pense que si tu fais apres un echo de $mot tu aura :
c'est le texte qui s'affiche -
\r\n est un caractere symbolisant un saut de ligne.
tu peut tenter la fonction nl2br()
pour refaire les saut de lignes.
$mot = 'c\'estle texte\r\nqui s\'affiche';
echo nl2br($mot); -
j'ai finalement opté pour un système avec base de données mais votre méthode à marché!
merci!