nl2br

(PHP 4, PHP 5)

nl2brВставляет HTML-код разрыва строки перед каждым переводом строки

Описание

string nl2br ( string $string [, bool $is_xhtml = true ] )

Возвращает строку string, в которой перед каждым переводом строки (\r\n, \n\r, \n и \r) вставлен '<br />' или '<br>'.

Список параметров

string

Входная строка.

is_xhtml

Использовать ли совместимые с XHTML переводы строк или нет.

Возвращаемые значения

Возвращает измененную строку.

Примеры

Пример #1 Пример использования nl2br()

<?php
echo nl2br("foo - это вам не\n bar");
?>

Результат выполнения данного примера:

foo - это вам не<br />
 bar

Пример #2 Генерирование корректной HTML-верстки с помощью параметра is_xhtml

<?php
echo nl2br("Привет!\r\nЭтой мой HTML-документ"false);
?>

Результат выполнения данного примера:

Привет!<br>
Этой мой HTML-документ

Пример #3 Различные разделители строк

<?php
$string 
"This\r\nis\n\ra\nstring\r";
echo 
nl2br($string);
?>

Результат выполнения данного примера:

This<br />
is<br />
a<br />
string<br />

Список изменений

Версия Описание
5.3.0 Добавлен необязательный параметр is_xhtml.
4.0.5 nl2br() теперь совместима с XHTML. Все старые версии возвращали string, в которой перед переводами строк были вставлены '<br>' вместо '<br />'.

Смотрите также

  • htmlspecialchars() - Преобразует специальные символы в HTML-сущности
  • htmlentities() - Преобразует все возможные символы в соответствующие HTML-сущности
  • wordwrap() - Переносит строку по указанному количеству символов
  • str_replace() - Заменяет все вхождения строки поиска на строку замены

Коментарии

It's important to remember that this function does NOT replace newlines with <br> tags. Rather, it inserts a <br> tag before each newline, but it still preserves the newlines themselves! This caused problems for me regarding a function I was writing -- I forgot the newlines were still being preserved.

If you don't want newlines, do:

<?php
$Result 
str_replace"\n"'<br />'$Text );
?>
2005-01-30 19:28:13
http://php5.kiev.ua/manual/ru/function.nl2br.html
Автор:
Seeing all these suggestions on a br2nl function, I can also see that neither would work with a sloppy written html line break.. Users can't be trusted to write good code, we know that, and mixing case isn't too uncommon.

I think this little snippet would do most tricks, both XHTML style and HTML, even mixed case like <Br> <bR /> and even <br            > or <br     />.

<?php
function br2nl($text)
{
    return 
preg_replace('/<br\\s*?\/??>/i'''$text);
}
?>
2006-03-09 15:28:48
http://php5.kiev.ua/manual/ru/function.nl2br.html
to replace all linebreaks to <br />
the best solution (IMO) is:

<?php
function nl2br2($string) {
$string str_replace(array("\r\n""\r""\n"), "<br />"$string);
return 
$string;
}
?>

because each OS have different ASCII chars for linebreak:
windows = \r\n
unix = \n
mac = \r

works perfect for me
2007-02-23 06:12:39
http://php5.kiev.ua/manual/ru/function.nl2br.html
Автор:
Here's a more simple one:

<?php
/**
 * Convert BR tags to nl
 *
 * @param string The string to convert
 * @return string The converted string
 */
function br2nl($string)
{
    return 
preg_replace('/\<br(\s*)?\/?\>/i'"\n"$string);
}
?>

Enjoy
2008-10-29 09:41:41
http://php5.kiev.ua/manual/ru/function.nl2br.html
Starting from PHP 4.3.10 and PHP 5.0.2, this should be the most correct way to replace <br /> and <br> tags with newlines and carriage returns.
<?php
/**
 * Convert BR tags to newlines and carriage returns.
 *
 * @param string The string to convert
 * @return string The converted string
 */
function br2nl $string )
{
    return 
preg_replace('/\<br(\s*)?\/?\>/i'PHP_EOL$string);
}
?>
(Please note this is a minor edit of this function: http://php.net/nl2br#86678 )

You might also want to be "platform specific", and therefore this function might be of some help:
<?php
/**
 * Convert BR tags to newlines and carriage returns.
 *
 * @param string The string to convert
 * @param string The string to use as line separator
 * @return string The converted string
 */
function br2nl $string$separator PHP_EOL )
{
   
$separator in_array($separator, array("\n""\r""\r\n""\n\r"chr(30), chr(155), PHP_EOL)) ? $separator PHP_EOL// Checks if provided $separator is valid.
   
return preg_replace('/\<br(\s*)?\/?\>/i'$separator$string);
}
?>
2014-06-10 11:46:48
http://php5.kiev.ua/manual/ru/function.nl2br.html
Автор:
double quotes !== single quotes

php > echo nl2br('\r\n');
\r\n
php > echo nl2br("\r\n");
<br />
2018-11-16 21:09:21
http://php5.kiev.ua/manual/ru/function.nl2br.html

    Поддержать сайт на родительском проекте КГБ