Новая строка в интерфейсе командной строки PHP

106

У меня есть скрипт CLI php, и я не могу заставить вывод разбиваться на новые строки. я делаю

echo 'this is my text\r\n';
echo 'next line';

Это дает

this is my text\r\nnext line

Есть идеи о том, как получить вывод на разных строках?

BetaRide
источник
4
Используйте двойные кавычки: echo "\n";.
Kerrek SB

Ответы:

242

Используйте двойные кавычки ".

echo "next line\n";

Дополнительно вы можете использовать системно-зависимую константу PHP_EOL

echo "this is my text" . PHP_EOL;
KingCrunch
источник
34
Использование PHP_EOL должно быть предпочтительным методом добавления новых строк.
AutomaticPixel
3
@AutomaticPixel Для совместимости платформ да, для межплатформенной совместимости вы должны использовать \nвместо этого.
KingCrunch
2
это было полезное и очень быстрое решение :) спасибо за обмен
Адитья П. Бхатт
3
@KingCrunch, что вы имеете в виду под "межплатформенной совместимостью"?
edigu
1
@foozy Например, вы создаете что-то в Linux, но хотите прочитать это в Mac-системе или Win-системе. Если вы не знаете целевую систему или она может измениться (-> кто-то пересылает письмо со сгенерированным файлом в качестве вложения), используйте\n
KingCrunch
14

Вместо этого используйте двойные кавычки. ".

Дэниел А. Уайт
источник
3

Лучше ничего не объединять в PHP, потому что это может привести к неожиданным результатам, вместо этого используйте запятую:

echo 'Text with new line' , PHP_EOL;

Это, кстати, тоже будет быстрее: без конкатенации и без синтаксического анализа двойных кавычек.

Emix
источник