\ nと\ rの違い(OSと関係があることは知っています)、およびクロスプラットフォームで機能する改行をエコーする最良の方法は何ですか?
編集: 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");
}
}
Jarodの答えには、さまざまなOSでの\ r\nの正しい使用法が含まれています。ここにいくつかの歴史があります:
「キャリッジリターン」および「ラインフィード」という用語は、モニターとキーボードを備えた端末の代わりにテレタイプが使用されたときにさかのぼります。テレタイプまたはタイプライターに関して、「キャリッジリターン」はカーソルを移動してテキストの最初の列に戻ることを意味し、「ラインフィード」はローラーを回転させて次の行に移動することを意味します。その時、区別は理にかなっています。今日、テキスト行の終わりを表す\ n、\ r、\ r\nの組み合わせは完全に任意です。
PHP4上のPHP_EOLには後方互換性は必要ありません。
一定の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 "。