Как работает перенос строки при выводе через PHP echo

Раздел: Основы PHP (синтаксис) -> Вывод с помощью echo

Вывод символа новой строки через echo в PHP - задача, которая решается разными способами в зависимости от контекста: браузер или командная строка. Понимание различий между HTML-разрывом строки <br> и управляющими последовательностями \n или PHP_EOL позволяет писать корректный код в любой среде.

Способы вывода новой строки

Какой способ наиболее универсален и платформонезависим?

Наиболее эффективное решение - использование константы PHP_EOL. Она автоматически подставляет правильный символ конца строки для операционной системы, на которой выполняется скрипт (\n для Unix, \r\n для Windows). Этот вариант идеален для текстовых файлов и вывода в консоль.

echo 'Первая строка' . PHP_EOL . 'Вторая строка';

Echo строки в php (вывод строки через echo в php)

Результат (в командной строке или текстовом файле):

Первая строка
Вторая строка

Echo r php (вывод переменной r через echo в php)

Для веб-страниц, где разрыв строки нужен в HTML, эффективнее использовать тег <br>, но это уже HTML-разметка, а не символ новой строки в коде.

Как вывести новую строку с помощью управляющей последовательности \n?

Самый прямой способ - вставить \n внутри строки в двойных кавычках:

echo "Строка один\nСтрока два";

Echo переменной php (вывод переменной через echo в php)

Такой вариант работает только в командной строке или при сохранении в файл. В браузере \n преобразуется в пробел, если не использовать тег <pre> или не задать CSS-свойство white-space: pre.

Типичная ошибка: новички пишут echo 'Строка один\nСтрока два'; в одинарных кавычках - тогда \n воспринимается как два символа (\ и n), а не как управляющая последовательность.

Как использовать \r\n для Windows?

Для совместимости со старыми Windows-системами иногда требуется последовательность \r\n (возврат каретки + перевод строки):

echo "Первый\r\nВторой";

Php echo значение (вывод значения через echo в php)

Однако в современных версиях PHP и ОС достаточно \n или PHP_EOL. Избыточное использование \r\n может вызвать проблемы на Unix-системах, где \r интерпретируется как управляющий символ.

Как получить перевод строки через HTML-тег <br>?

Для вывода в браузере разрыв строки создаётся тегом <br> (или <br />):

echo "Первая строка<br>Вторая строка";

вывод echo php (вывод с помощью echo (общее) в php)

В отличие от \n, <br> не добавляет перенос в исходном коде страницы, а отображает его визуально.

Ошибка: использование <br> в контексте текстовых файлов (например, при генерации логов) - туда нужно выводить именно \n, иначе файл будет содержать HTML-разметку.

Как преобразовать все символы \n в <br> функцией nl2br()?

Если исходная строка содержит \n, а нужно вывести её в браузере с переносами строк, используется встроенная функция nl2br():

$text = "Строка A\nСтрока B";
echo nl2br($text);

Php echo n (вывод символа новой строки через echo в php)

Результат в браузере:

Строка A<br />
Строка B

Echo file php (вывод содержимого файла через echo в php)

Как вывести новую строку с помощью echo и нескольких аргументов?

Конструкция echo может принимать несколько строк через запятую. Но сама по себе запятая не добавляет перевод строки. Его нужно явно вставить:

echo 'Первая', "\n", 'Вторая';

Этот подход иногда используют для конкатенации с минимальными накладными расходами. Однако чаще применяют конкатенацию через точку (.) или двойные кавычки с вставкой.

Распространённое заблуждение: echo 'Первая', 'Вторая' - строки склеятся без переноса. Для разделения необходимо явно передать символ новой строки как отдельный аргумент.

- Php echo array (вывод массива через echo в php)
- Php echo get (вывод get-параметров через echo в php)
- Php else else if echo (конструкция if-else с echo в php)

Расширенные примеры

Дополнительные сценарии работы с символами новой строки в echo включают комбинированные подходы и нестандартные приёмы.

Пример
// Пример 1: Запись лога с временной меткой и переводом строки
$log = date('Y-m-d H:i:s') . \" Запись\" . PHP_EOL;
echo $log;
// Результат (консоль):
// 2025-03-24 12:00:00 Запись
// (с переводом строки)
Пример
// Пример 2: Генерация CSV с разделителями строк
$header = "Имя,Возраст" . PHP_EOL;
$row1 = "Анна,28" . PHP_EOL;
echo $header . $row1;
// Результат (в файле или консоли):
// Имя,Возраст
// Анна,28
Пример
// Пример 3: Использование heredoc с сохранением переносов
$text = <<<EOT
Первая строка
Вторая строка
Третья строка
EOT;
echo $text;
// В heredoc переносы сохраняются как \n, вывод аналогичен трём строкам.
Пример
// Пример 4: Вывод нескольких строк через echo с циклом
$lines = ['Строка 1', 'Строка 2', 'Строка 3'];
foreach ($lines as $line) {
    echo $line . PHP_EOL;
}
// Результат:
// Строка 1
// Строка 2
// Строка 3
Пример
// Пример 5: Вывод в браузер с сохранением исходного форматирования
$code = "if (true) {\n    echo 'ok';\n}";
echo '<pre>' . $code . '</pre>';
// В браузере отобразится код с переносами (благодаря <pre>)
// Результат: внутри тега pre видны все \n как настоящие переходы на новую строку.
Пример
// Пример 6: Комбинация \n и 
для гибридного вывода (рекомендуется избегать) echo "Текст для терминала:\n"; echo "Текст для браузера<br>"; // Такой код усложняет поддержку, лучше использовать разные блоки в зависимости от среды.
Пример
// Пример 7: Использование константы PHP_EOL в heredoc с синтаксисом nowdoc
$string = <<<'NOWDOC'
Это nowdoc.
Переносы сохраняются,
но переменные не подставляются.
NOWDOC;
echo $string . PHP_EOL;
// Результат в консоли: все \n из nowdoc остаются, и в конце добавляется платформенно-зависимая новая строка.

Вывод символа новой строки через echo в PHP - comments

En
Php echo n (php)