- Как правильно сделать перенос строки на PHP: все способы
- Использование спецсимволов \n, \r, \r\n
- Использование функции nl2br
- Универсальный перенос при помощи константы PHP_EOL
- Вывод. Какой метод правильнее будет использовать
- Переносы строк и тег BR в PHP
- Замена переносов строк на BR
- Результат:
- Результат:
- Удаление лишних тегов
- Удаление в начале строки
- Результат:
- Удаление в конце строки
- Результат:
- Удаление перед закрывающим тегом
- Результат:
- Результат:
- Результат:
- Замена переноса строк(не \n символ) на br
Как правильно сделать перенос строки на PHP: все способы
Тег br используется для вставки разрыва строки в HTML. Это пустой тег. Соответственно — у него отсутствует закрывающий тег и он ничего не переносит в плане контента. Сразу пример использования:
Это параграф.
Он состоит сразу из нескольких строк.
Примечание: в этом примере тег br используется для вставки разрыва строки между двумя предложениями, в результате чего второе предложение появляется на новой строке.
Зачем нужен
Тег br чаще всего применяется для разделения длинных строк текста или для разделения элементов в списке. Его также можно использовать и для добавления дополнительного пробела между строками текста.
br часто используется в сочетании с другими HTML-элементами, такими как p (абзац) или div (разделение), для структурирования содержимого веб-страницы.
Важно: тег br следует использовать только для добавления разрывов в HTML. Для создания других типов интервалов или иной компоновки страницы — нужно применять стили.
Тег br используется для добавления разрыва внутри блока текста, но не для начала нового абзаца.
Использование спецсимволов \n, \r, \r\n
Для создания новой строки внутри исходного хода можно применять спецсимволы \n или \r\n.
Важно: если нужно создать видимые на странице разрывы, лучше использовать nl2br() — эта функция вставляет HTML-код разрыва строки перед всеми новыми строками. Понять принцип этой функции проще всего на следующем примере:
echo "В исходном тексте веб-страницы \r\n можно увидеть новую строчку в этой строчку";
echo "
";
echo nl2br("Вы увидете \n новых строчек в этой строчке\r\n..");
?>
Использование функции nl2br
Выше мы рассмотрели использование этой функции кратко. Давайте закрепим её, рассмотрев ещё несколько примеров.
Синтаксис функции имеет такой вид:
Запомнить: функция nl2br() вставляет разрывы перед всеми новыми строками. В качестве них могут выступать: \r, \r\n, \n, \n\r.
Изучение способов переноса принесет вам пользу в долгосрочной перспективе. Ну а чтобы пользы было ещё больше — успейте записаться на курс бэкенд-разработчик от Loft.
Функция принимает два параметра:
- string. Входная строка. Обязательный.
- is_xhtml. Может быть TRUE или FALSE. Указывает, стоит ли применять переводы строк, совместимые с XHTML. Опциональный.
Давайте посмотрим ещё один пример использования функции:
echo nl2br("Привет, Миша!\r\nДобро пожаловать на сайт", false);
?>
Привет, Миша!
Добро пожаловать на сайт.
При открытии в браузере, в самом содержимом страницы, пользователь увидит:
Привет, Миша! Добро пожаловать на сайт.
Следующий пример. Он очень похож на предыдущий:
echo nl2br("Привет, Миша!\nДобро пожаловать на сайт.");
?>
Привет, Миша!
Добро пожаловать на сайт.
При открытии в браузере, в самом содержимом страницы, пользователь увидит:
Привет, Миша! Добро пожаловать на сайт.
Тег, таким образом, не виден на странице (в её содержимом)
Универсальный перенос при помощи константы PHP_EOL
PHP_EOL — это предопределенная константа, которая помогает улучшить совместимость PHP-приложений с различными платформами.
Она автоматически выбирает символ конца строки, используемый в системе пользователя (на которой выполняется PHP).
В чем сложность
- В операционных системах семейства Windows новая строка обозначается с помощью \r\n (так называемый возврат каретки или CRLF)
- В операционных системах семейства в Linux и Mac для вышеуказанной цели задействован unix-подобный разделитель \n.
Чтобы улучшить совместимость с другими ОС не применяйте «\n» для создания новых строк
PHP_EOL можно использовать так же, как и \n:
echo 'Privet Misha' . PHP_EOL;
Примечание: поскольку такие переносы строк невидимы, мы использовали [LF], чтобы обозначить его (в том месте, где был выведен перенос).
Вывод. Какой метод правильнее будет использовать
Тег br — полезный инструмент для управления макетом и форматированием текста на веб-странице. Наравне с другими HTML-тегами ( p и div ) br применяется для создания, структурирования и форматирования видимого содержимого страницы.
Чтобы не запутаться в разных методах переноса — даем резюмирующую шпаргалку:
- br / — это HTML-тег. Его задача вывести последующее содержимое с новой строки. Подойдет для выводимого на странице содержимого.
- \r\n — стандартный перенос.
- nl2br() — функция выполняется построчно и автоматически меняет все переносы строк на br/ .
- PHP_EOL — пригодится, когда нужно обеспечить мультиплатформенность.
Хотите стать крутым и востребованным веб-разработчиком? У нас есть специализированный курс!
Переносы строк и тег BR в PHP
В PHP за перенос текста отвечают управляющие символы \r (возврат каретки) и \n (перевод строки), причем в разных операционных системах (на которых работает сервер) они применяются в разных комбинациях:
Поэтому в место распространенного \r\n рекомендуется использовать константу PHP_EOL для кроссплатформенности кода.
Замена переносов строк на BR
С помощью функции str_replace() :
$text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin blandit magna eu tempus ullamcorper. Sed porta justo sed nibh elementum condimentum."; $text = str_replace(PHP_EOL, '
', $text); echo $text;
Результат:
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Proin blandit magna eu tempus ullamcorper.
Sed porta justo sed nibh elementum condimentum.
Функция nl2br() добавляет тег
, но оставляет символы переносов строк.
$text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin blandit magna eu tempus ullamcorper. Sed porta justo sed nibh elementum condimentum."; $text = nl2br($text, false); echo $text;
Результат:
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Proin blandit magna eu tempus ullamcorper.
Sed porta justo sed nibh elementum condimentum.
Если через функцию nl2br() пропустить текст несколько раз, то количество
с каждым разом будет увеличиваться и получится следующий результат:
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Proin blandit magna eu tempus ullamcorper.
Sed porta justo sed nibh elementum condimentum.
Чтобы этого избежать нужно перед вызовом nl2br() применять обратную функцию br2nl() :
function br2nl($text) < return preg_replace('//i', '', $text); >
Удаление лишних тегов
Удаление
в начале строки
$text = '
Тег
в начале строки.'; $text = preg_replace('/^()+/i', '', $text); echo $text;
Результат:
Удаление
в конце строки
$text = 'Тег
в конце строки.
'; $text = preg_replace('/()+$/i', '', $text); echo $text;
Результат:
Удаление
перед закрывающим тегом
$text = 'Лишний
в конце параграфа. '; $text = preg_replace('/()+([\s+])?()$/i', '$3', $text); echo $text;
Результат:
Еще момент, обычно в WYSIWYG редакторах пустая строка выполняется элементом
, следующий код удаляет данные переносы в конце текста.
$text = ' Пустые строки в конце текста.
'; $text = preg_replace('/( [\s+]?)+$/i', '', $text); $text = trim($text); echo $text;
Результат:
Пустые строки в конце текста.
Удаление повторяющихся
$text = 'Текст
с
множеством
переносовстрок.'; $text = preg_replace('/()/i', '
', $text); echo $text;
Результат:
Текст
с
множеством
переносов
строк.
Замена переноса строк(не \n символ) на br
Имеется
текст текст текст текст текст текст текст текст»); //Это выбивает ошибку JS
Нужно: myfunction(«текст текст текст текст
текст текст текст текст текст текст текст текст»); //Так будет работать.
Нужно решение на PHP или JS ну или может это в самом mysql можно задать.
Замена в поле переноса строки на текстовый символ
Сорри за тупой вопрос, но для меня он горячо актуален: Как заменить в текстовом поле перенос.
Символ переноса в Excel (Как заменить символ на перенос строки)
Решил подсобить всем кто будет гуглить: Как заменить символ на перенос строки в Excel (ALT+Enter).
Символ переноса на другую строчку или символ enter
Здравствуйте. Имеем: Текстовый документ, в нем строчки, в каждой строчке по одному слову. .
Появляется символ переноса
Приветствую. Я через админку, на страницу добавляю примерно такой код: <tr ><td.
mb_ereg_rerplace('\n', '
', 'текст с переносом строки');
Vas-e-na, не помогло, он не заменил на брки, видать потому что там не \n-ки стоят, а просто сами переносы, без \n-ок.