2009-03-18 3 views
1

ハーデスト問題をなくします$にあるテキストファイルはどこに$ lolがループするかになります。PHPを説明する淫乱 nの正方形の

$笑=「SOFTLAYER」私は

softlayer music 
softlayer books 
softlayer games 
etc.. 
でCSVになるだろうのであれば問題は、私はメモ帳でそれらを開いたとき、彼らはなど、SOFTLAYERの音楽ではないですで区切られた同じ行にすべてです「改行」を意味する恐ろしい四角形。このため、私が生成しようとしているCSVは、それらを使用しようとしているソフトウェアによれば、おそらく無効です。絶対に恐ろしい問題を説明することだった

ので、恐れ入ります:)

すべてのヘルプは大規模いただければ幸いです!

+0

改行シーケンスの両方をサポートするエディタを使用してください。メモ帳は吸う。 – Gumbo

答えて

8

歴史の古い霧の中で、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"; 
+0

'\ n \ n'を '\ r \ n'(二重改行を単一のものに変更)で置き換えることはできませんか? preg_replace( '/ \ r \ n | \ r | \ n /'、 "\ r \ n"、$ stringData)はどうですか? – zildjohn01

1

代わりに "\ r"を試してみますか?