Préserver un retour à la ligne dans un textarea en utf-8

Préserver un retour à la ligne dans un textarea en utf-8 - HTML/CSS - Programmation

Marsh Posté le 07-05-2014 à 06:28:20    

Bonjour à tous,
Je me trouve confronté à un problème en récupérant les données d'un textarea:
Le moindre retour à la ligne me sort du bloc d'affichage délimité par "<p></p>".
Je me retrouve alors avec un texte scindé en deux parties.
http://www.tony-transport.com/i2.jpg
Voici le code pour l'affichage:

Code :
  1. if (file_exists($f))
  2. {
  3. $fp2=fopen("../actualite.dir",'r'); 
  4. while (!feof($fp2))
  5. $don=explode("#",fgets($fp2)); 
  6. $dt1=$don[0]; //date1
  7. $tit1=$don[1];//titre1
  8. $des=$don[2];
  9. $lien1=$don[3];
  10. if($des>"" ){
  11. $verif=1;
  12. echo "<tr><td><span class='ad' style='margin-left:-300px;'>Résultat sur la page d'accueil :</span><div id='content_02'>";
  13. echo"<p> <span class='stitre'>".$tit1."</span><br /><cv2> Le : ".$dt1."</cv2><br />";
  14. echo "<cv2>".$des."</cv2>";
  15. if($lien1>"" )
  16. {
  17. echo "<br /><a href=".$lien1."><lien>Lire l'article</lien></a>";
  18. }
  19. echo "</p>";
  20. }
  21. }
  22. fclose($fp2);
  23. }
  24. if($verif==1){
  25. echo "<form action='#' method='get'><input type='hidden' name='effacer' value='1'><input type='submit' value='Supprimer'></form><br /></div>";
  26. }


 
Un grand merci à vous...

Reply

Marsh Posté le 07-05-2014 à 06:28:20   

Reply

Marsh Posté le 07-05-2014 à 13:29:37    

fgets lit par défaut un fichier ligne par ligne, donc si tu as un retour à la ligne c'est normal de passer à une nouvelle itération.
 
Bref une solution c'est de lire tout le fichier puis d'après l'explode en fonction des séparateurs. Vu ton schéma, il te faudra deux séparateurs différents.
 
L'autre solution c'est de mettre tout le texte sur une seule ligne dans ton fichier mais d'utiliser un caractère spécial à la place des retours à la ligne.

Reply

Marsh Posté le 07-05-2014 à 13:42:05    

Je n'avais pas creuser cette idée, je vais essayer
avec la fonction "files_content" et travailler en tmp. pour les explodes :)  
Une seule ligne n'est pas possible, car j'autorise jusqu'à 500 caractères.
Merci beaucoup !

Reply

Marsh Posté le 07-05-2014 à 16:55:47    

Non ce que je veux dire c'est qu'en enregistrant dans ton fichier tu peux supprimer les sauts de lignes rentrés et les remplacer par un caractère spécial. Et en sortie tu fais le contraire.

Reply

Marsh Posté le 09-05-2014 à 05:10:18    

Le problème est qu'en utf-8, les sauts de lignes ne sont plus reconnus à l'enregistrement, j'ai essayé avec chr$(13), avec "\n\r" en fin de ligne, mais en observant le fichier, tout reste concaténé... :??:
Tu as raison, il me faut un autre séparateur pour les fins de ligne, et encore un autre pour les fins de message. En fait, un total de 3 séparateurs.
Merci !
 


Message édité par ghost1958 le 09-05-2014 à 05:26:26
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed