In theory, you regular expression does work, but the problem is that not all operating system and browsers send only
at the end of string. Many will also send a .
Try:
I've simplified this one:
preg_replace("/(
?
){2,}/", "
", $text);
And to address the problem of some sending only:
preg_replace("/[
]{2,}/", "
", $text);
Based on your update:
// Replace multiple (one ore more) line breaks with a single one.
$text = preg_replace("/[
]+/", "
", $text);
$text = wordwrap($text,120, '<br/>', true);
$text = nl2br($text);
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…