Question

Je développe un site de desserte unique en PHP qui affiche simplement des messages. qui sont postés par les visiteurs (idéalement autour du sujet du site). Tout le monde peut envoyer jusqu'à trois messages par heure.

Étant donné que le site Web ne comportera qu'une page, j'aimerais contrôler la longueur verticale de chaque message. Cependant, je souhaite au moins partiellement préserver les sauts de ligne dans le message d'origine. Un compromis consisterait à autoriser deux sauts de ligne, mais s'il y en a plus de deux, remplacez-les par un total de deux sauts de ligne. Le débordement de pile l'implémente.

Par exemple:

& "Porc-épic"

serait remplacé par

& "; Porc-épic" < br / > sont < br / > < br / > porcupiney. quot;

Un aspect délicat de la recherche de sauts de ligne est la possibilité qu’ils soient collectés et stockés sous \ r \ n, \ r ou \ n. J'ai pensé à convertir tous les sauts de ligne en & Lt; br / & Gt; s en utilisant nl2br (), mais cela semblait inutile.

Ma question: En utilisant des expressions régulières en PHP (avec des fonctions comme preg_match () et preg_replace ()), comment puis-je vérifier les occurrences de plus de deux sauts de ligne dans une ligne (avec ou sans espace entre elles), puis changer pour un total de deux sauts de ligne?

Était-ce utile?

La solution

preg_replace('/(?:(?:\r\n|\r|\n)\s*){2}/s', "\n\n", $text)

Autres conseils

Quelque chose comme

preg_replace('/(\r|\n|\r\n){2,}/', '<br/><br/>', $text);

devrait fonctionner, je pense. Bien que je ne me souvienne pas exactement de la syntaxe PHP, il faudra peut-être un peu plus d'échappement: - /

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top