歴史の古い霧の中で、Windows Folk、Mac Folk、およびUnixの人々は、どの文字が行末を示すべきかについて同意できませんでした。従来のMac OSでは、キャリッジリターン(\ r)でした。 Unixでは、改行(\ n)でした。ウィンドウでは改行(\ r \ n)の後に改行が続きました。
歴史的に言えば、古いタイプライターではという2つのものをとしなければなりません。キャリッジリターン(大きな腕のもの)は、紙の左側(または右側;シャローム!)にタイプライターヘッドを戻します。しかし、頭はまだ同じ行にあるでしょう。用紙自体を一行上に移動するには、改行(改行または改行)を使用する必要があります。
ASCII標準の理由の1つは、後で(テレグラフ、テレタイプなどを介して)印刷される予定のデータをエンコードして、標準で両方の文字が意味を持つようにすることでした。主な目的がコンピュータに保存されているファイルの標準を決める時が来たとき、誰も同意できませんでした。 Windowsの標準(\ r \ n)は文字通り意味がありますが、UnixとClassic Macの標準(UNIXの場合は\ n、Classic Macの場合は\ n)はビット単位で保存されていました。
これは何十年もの混乱を招き、今後も混乱を招きます。これは、Windows環境でUnixツールを使用する場合に特に当てはまります。これらのツールの多くは\ nを行末として扱います。さらに、PHPソースファイルがunixスタイルの行末でエンコードされている可能性があります。つまり、複数の行で区切られた文字列が実際に\ n改行で分割され、プログラムが正しく動作します。
ほとんどの現代のテキストエディタは、テキストファイルがどのようにエンコードされているかを把握し、著者が意図した通りの線を表示します。メモ帳はそのようには機能しませんし、文字通りテキストファイルの内容に従います。かかわらず、すべてのものの
、次のようにreg exは窓
$stringData = preg_replace('/[\n\r]{1,2}$/',"\r\n",$stringData);
代わりに標準何にあなたの行末を正常化する必要があり、あなたは復帰/改行で終了し、あなたの文字列を構築することができ
$string = "line 1\r\nline 2";
$string = "line 1\r\n".
"line 2\r\n";
改行シーケンスの両方をサポートするエディタを使用してください。メモ帳は吸う。 – Gumbo