\r\n fichier texte php

Fermé
dallap - 6 févr. 2011 à 18:03
 dallap - 7 févr. 2011 à 23:34
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! :)
A voir également:

3 réponses

Utilisateur anonyme
6 févr. 2011 à 18:31
$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
0
.Zoro. Messages postés 263 Date d'inscription mardi 17 août 2010 Statut Membre Dernière intervention 8 mai 2020 33
6 févr. 2011 à 18:53
\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);
0
j'ai finalement opté pour un système avec base de données mais votre méthode à marché!
merci!
0