Как показать только одну новую линию с помощью NL2BR?

StackOverflow https://stackoverflow.com/questions/1387296

  •  21-09-2019
  •  | 
  •  

Вопрос

Я использую 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)) должен сделать улов (непроверенный).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top