В чем разница между \ n и \ r (я знаю, что это имеет какое-то отношение к ОС), и каков наилучший способ повторить разрыв строки, который будет работать на кросс-платформе?
EDIT: В ответ на Jarod я буду использовать ths, чтобы повторить разрыв строки в файле журнала .txt, хотя я уверен, что буду использовать его в будущем для таких вещей, как эхо HTML makup на странице.
\n
– это разрыв строки Linux / Unix. \r
– классический разрыв строки в Mac OS (без OS X). Mac OS X использует вышеупомянутый unix \n
. \r\n
– разрыв строки Windows. Обычно я просто использую \n
для наших Linux-систем, и в большинстве случаев приложения Windows работают с ним нормально.
Используйте константу PHP_EOL
, которая автоматически устанавливается на правильный разрыв строки для операционной системы, на которой работает PHP-скрипт.
Обратите внимание, что эта константа объявляется с PHP 5.0.2.
<?php echo "Line 1" . PHP_EOL . "Line 2"; ?>
Для обратной совместимости:
if (!defined('PHP_EOL')) { switch (strtoupper(substr(PHP_OS, 0, 3))) { // Windows case 'WIN': define('PHP_EOL', "\r\n"); break; // Mac case 'DAR': define('PHP_EOL', "\r"); break; // Unix default: define('PHP_EOL', "\n"); } }
Ответ Джарода содержит правильное использование \ r \ n для разных ОС. Вот некоторая история:
Терминология «возврат каретки» и «линия подачи» восходит к тому времени, когда вместо терминалов с монитором и клавиатурой использовались телетайпы. Что касается телетайпов или пишущих машинок, «возврат каретки» означал перемещение курсора и возврат к первому столбцу текста, в то время как «линия подачи» означала поворот ролика, чтобы перейти на следующую строку. В то время это различие имело смысл. Сегодня комбинации \ n, \ r, \ r \ n для представления конца строки текста полностью произвольны.
Для PHP_EOL на PHP4 не требуется обратная совместимость.
Нужно исправить утверждение Мура о постоянной доступности PHP_EOL: «… объявлено с PHP 5.0.2».
Нет, это было с тех пор, как PHP 4.3.10. Любой, кто все еще работает чем-то меньшим, не должен быть в бизнесе. На сегодняшний день никто не должен использовать что-либо меньшее, чем PHP 5!
Из руководства PHP: «PHP_EOL Правильный символ« End Of Line »для этой платформы. Доступен с PHP 4.3.10 и PHP 5.0.2».