Discussion:
PHP et retours chariot dans variables
(trop ancien pour répondre)
David
2010-04-01 23:09:44 UTC
Permalink
Bonjour,

J'ai un truc qui m'agace et que je n'arrive pas à solutionner.
J'ai un flux de texte provenant d'une base de données que j'affecte à
une variable.

Dans ce flux texte, il peut y arriver que il y ait plusieurs retours
chariots alors que cela n'est pas nécessaire.

Dans ma tête (il y a du monde dedans, mais bon), un retour chariot
equivant à un retour à la ligne, 2 à un saut de paragraphe. Donc si il
y en a plus que deux (genre 5 d'affilée), je veux les remplacer par
uniquement 2 (pour avoir un simple saut de paragraphe).

Et là, je sèche !

J'ai tenté avec des expressions régulières mais je ne suis pas très
familier avec cela.

Auriez vous une piste à me communiquer ?

David
Olivier Miakinen
2010-04-01 23:21:05 UTC
Permalink
Bonjour,
Post by David
J'ai un truc qui m'agace et que je n'arrive pas à solutionner.
J'ai un flux de texte provenant d'une base de données que j'affecte à
une variable.
Dans ce flux texte, il peut y arriver que il y ait plusieurs retours
chariots alors que cela n'est pas nécessaire.
Dans ma tête (il y a du monde dedans, mais bon), un retour chariot
equivant à un retour à la ligne, 2 à un saut de paragraphe. Donc si il
y en a plus que deux (genre 5 d'affilée), je veux les remplacer par
uniquement 2 (pour avoir un simple saut de paragraphe).
Et là, je sèche !
J'ai tenté avec des expressions régulières mais je ne suis pas très
familier avec cela.
En supposant que le « retour chariot » est représenté par un \n seul,
n'importe laquelle des expressions suivantes devrait le faire :

$output = preg_replace("/\n\n\n*/", "\n\n", $input);

$output = preg_replace("/\n\n+/", "\n\n", $input);

$output = preg_replace("/\n{2,}/", "\n\n", $input);
Post by David
Auriez vous une piste à me communiquer ?
Oui : fr.comp.lang.regexp. ;-)
--
Olivier Miakinen
Continuer la lecture sur narkive:
Loading...