Supprimer certains retour à la ligne et pas d'autres.

WRInaute passionné
Bonjour,

J'ai un fichier text. Les définitions se présentent ainsi quand on fait un copié/collé (sinon tout est tassé, sans aucun retour, les saut de ligne sont marqués par des espèces de carré) :

Code:
:A
 # 1. np.
{{MSDOS{{DISQUE
Quand cette lettre est suivie de « : », c'est 
l'identifiant habituel du {lecteur{ de {disquette{s, en particulier
sous {MS-DOS{. Exemple&nbsp;: <i>«&nbsp;Copie tout sur le lecteur
A:&nbsp;!&nbsp;»</i>.
 # 2. ext.
{{TYPFICH{{EXT
Extension du nom d'un fichier contenant du code source {Ada{.
 # 3. sg.
{{INTERNET
Address. Type d'enregistrement {DNS{ contenant une adresse d'un hôte
et son nom réseau correspondant.
(09-11-2006).
Alors là mon problème, c'est que vous voyez qu'il y a deux types de retour : les retour normaux, par exemple entre le titre :)A), les catégories (#1.np) et puis tout en bas, pour la date.
Et puis il y a des retours charriots impromptus, en plein milieu de phrase. Par exemple à la première ligne, il y a un retour juste après "c'est". Et en dessous, il y en a un juste après "particulier" etc...

Or, je veux conserver les premiers saut de ligne, mais pas les retour à la ligne impromptus en plein milieu de phrase.

Si je fais ça : j'obtiens très exactement à l'affichage, le résultat que vous voyez au dessus et que je ne veux pas :

Code:
$definition=nl2br($definition);

Si je ne fais pas de nl2br(), alors tout est tassé, sans aucun saut de ligne nulle part.

Comment faire svp :question:
 
WRInaute passionné
Je précise que les sauts de ligne à conserver sont indiqués dans le fichier TXT par un rectangle verticale, je ne connais pas le nom de ce symbole (si je veux le copier/coller ici, ça fait un saut de ligne).
Pour les retours à la ligne en plein milieu de phrase, ils ne sont indiqués par rien.
 
WRInaute impliqué
salut,
je pense que les "carrés" sont des "\n"
alors qu'un retour à la ligne sous windows est "\r\n"
alors comme çà et à tout hasard :
Code:
$definition = str_replace( "\r\n", "", $definition );
$definition = str_replace( "\n", "\r\n", $definition );
 
WRInaute passionné
Salut julienr,

En fait j'ai regardé le fichier txt, qui est un peu touffu, et tous les retours à la ligne, y compris ceux que je qualifie d'impromptus, sont marqués par le caré en question (en fait un petit rectangle horizontal). Je ne sais pas pourquoi c'est comme ça.


ça va donc être assez embettant de faire le tri, je crois...
 
WRInaute discret
Il faudrait que tu l'ouvres avec un "vrai" éditeur de texte (pas notepad) : vim, notepad++, pspad?, ...
Ceci afin de voir quels sont ces caractères ...
 
WRInaute passionné
Salut,

Que je l'ouvre dans dreamweaver ou word les rectangle en question sont automatiquement transformés en saut de ligne à l'affichage.
 
WRInaute discret
Meeuuuhhh a dit:
Salut,

Que je l'ouvre dans dreamweaver ou word les rectangle en question sont automatiquement transformés en saut de ligne à l'affichage.

Je t'ai parlé d'un éditeur de texte !
Regarde la liste que je t'ai donné :)
 
Discussions similaires
Haut