Transformer une saisie texte en paragraphes
Souvent, lorsque l’on soumet une textarea à l’un de nos utilisateurs, celui-ci ressent le besoin de mettre différents paragraphes. C’est tout à fait légitime et ne pouvons lui en vouloir. Néanmoins, comment afficher sa saisie correctement ?
Pour rappel, les sauts de lignes sont enregistrés comme tels par défaut, avec une combinaison de \r (retours chariots) et de \n (sauts de lignes), dépendant du système d’exploitation utilisé. L’astuce la plus utilisée est l’utilisation de la bien nommée fonction PHP nl2br, qui transforme les sauts de lignes en <br />.
Cependant, que faire si nous voulons de jolis paragraphes pour respecter davantage la sémantique du Web ? Je vous propose ici une fonction pas franchement révolutionnaire, mais toujours utile.
/**
* Converts a text with break lines into a
* paragraph-formated text.
* @param string $text Text to transform.
* @return string
*/
function paragraphize($text) {
$text = nl2br($text);
$text = preg_replace('#\s*<br />\s*#s', "</p>\n<p>", $text);
$text = '<p>'.$text.'</p>';
return $text;
}
Quelques explications. On commence tout d’abord par transformer les sauts de lignes textes en sauts de lignes HTML (ligne 1). Puis, nous transformons les sauts de lignes HTML en fin et début de paragraphe en y insérant un saut de ligne pour nous faciliter la lecture du code source (ligne 2). Enfin, nous encadrons notre texte dans un paragraphe, pour compléter de manière correcte notre transformation (ligne 3).
Trackbacks
There are no trackbacks on this entry.
Comments
There are no comments on this entry.