Our Blog

Автоперенос строк на php

При работе сайтов на PHP, сильно напрягало, что PHP пофиг на перенос строки Enter’ом. И приходилось вручную добавлять тег переноса строки. Но если посмотреть на крупные проекты, например, движки сайтов, то они лишены этого недостатка. Я решил разобраться каким образом..

Отправляем, например, текстовое поле:

<textarea name="text"></textarea>

На сервере создается переменная $text (или с выключенной дерективой глобальных переменных — $_POST[‘text’] или $_GET[‘text’]). Но если вывести содержимое этой переменной

echo $text;

То в выводе напрочь отсутствует перевод строки. Если же использовать функцию nl2br(), то перевод строки появляется. Дело в том, что поле многострочного текста в место разрыва добавляет символ новой строки \n (XML-аналог HTML-тэга перевода строки). Но браузер этого не понимает. Функция nl2br() добавляет перед всеми символами новой строки \n тэг перевода строки.

echo nl2br($text);

В итоге текст разбивается на абзацы и все работает как надо :)

Comments ( 0 )
    -->