Как показать только одну новую линию с помощью NL2BR?
Вопрос
Я использую nl2br()
конвертировать \n
персонажи в <br />
тег, но я не хочу больше одного <br />
тег за раз. Например, Hello \n\n\n\n Everybody
должен стать Hello <br /> Everybody
.
Как я могу это сделать?
Решение
Наиболее прямым подходом может быть сначала заменить несколько новичков на одну, используя простое регулярное выражение:
nl2br(preg_replace("/\n+/", "\n", $input));
Другие советы
Если у вас есть PHP 5.2.4+, вы можете использовать Preg_replace и тип символов вертикального пробела \v
$str = preg_replace('/\v+/','<br>', $str);
Я бы попробовал заменить повторяющиеся новички с помощью одиночных новейсов, используя preg_replace () сначала, а затем с использованием NL2BR для преобразования в HTML
теги. nl2br(preg_replace('/\n+/', '\n', $the_string))
должен сделать улов (непроверенный).
Не связан с StackOverflow