nl2br() - переход на новую строку

Форум для тех кто начинает осваивать язык php.
Аватара пользователя
Slash
Администратор
Сообщения: 2125
Зарегистрирован: Сб авг 11, 2012 7:39 am
Поблагодарили: 75 раз

nl2br() - переход на новую строку

Сообщение Slash » Вс фев 02, 2014 10:50 am

Об этой функции мне поведал товарищ lyod, которая в свою очередь оказалась очень полезна. Говоря простым языком функция nl2br() добавляет переход на новую строчку, там, где это было задано. Например мне потребовалось для небольшого блога, с которым кстати мне тоже помог товарищ lyod, сделать переход на новую строку в статьях. То есть изначально все искусственные переходы, при вводе текста, сделанные Enter'ом не учитывались, все было одним литым текстом, после добавления функции nl2br() все стало, как надо.
Что же я сделал? Куда вставил функцию?
В общем перед выводом текста на экран, пропускаем этот текст через функцию:

Код: Выделить всё

echo nl2br($blog_message);
Готово! Теперь все переходы учитываются.

Реклама
cefp
Сообщения: 334
Зарегистрирован: Ср окт 17, 2012 6:49 pm
Поблагодарили: 3 раза

Re: nl2br() - переход на новую строку

Сообщение cefp » Сб июл 04, 2015 1:10 am

Интересно есть ли функция замену двойного нажатия энтера новым абзацем.
d o h o d - s - n u l y a .ru - идеи бизнеса.

lyod
Сообщения: 75
Зарегистрирован: Пн янв 06, 2014 11:13 pm
Поблагодарили: 1 раз

Re: nl2br() - переход на новую строку

Сообщение lyod » Сб июл 04, 2015 1:01 pm

есть ли функция замену двойного нажатия энтера новым абзацем.
Нет. Но сделать её очень легко.
Вот:

Код: Выделить всё

<?php
    /*
    * Для преобразования переноса строк в теги html,
    * При двойном переносе создаётся новый абзац.
    *
    * @var $string - строка для обработки
    *
    * @return string
    */
    function nl2p( $string ){
        # Производим замену
        $string = '<p>'. preg_replace("~\r\n(\s*)\r\n|\n\r(\s*)\n\r|\n(\s*)\n~", '</p><p>', $string) .'</p>';
        
        # Возвращаем обработанную строку
        return nl2br( $string );
    }
    
    # Пример использования
    $string = 'Проверка работы функции для обработки нового абзаца.
    
    Проверка работы функции для обработки нового абзаца.
    А это обычный перенос, перед ним будет обычный тег "br".
    
    Проверка работы функции для обработки нового абзаца.';
    
    echo nl2p( $string ); 

cefp
Сообщения: 334
Зарегистрирован: Ср окт 17, 2012 6:49 pm
Поблагодарили: 3 раза

Re: nl2br() - переход на новую строку

Сообщение cefp » Сб июл 04, 2015 4:07 pm

Спасибо за код, очень полезный.
d o h o d - s - n u l y a .ru - идеи бизнеса.

Ответить Пред. темаСлед. тема

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость