質問
私は、テキストファイルに書き込むfwritesの束を持っています。しかし、その各行は、データの次のセット以来入れれることは決してありませんした後に、私が欲しい改行(「\ nは」)このコードは、テキストファイルに挿入することを最後の行にこだわっているように見えます:
while(odbc_fetch_row($result)){
if($counter==0){
$counter3 = 1;
foreach($column_names as $column_names2){
if($length!=$counter3){
fwrite($write_file, '"'.$column_names2.'",');
}else{
fwrite($write_file, '"'.$column_names2.'"');
}
$counter3++;
}
//echo 'Never gets executed???';
fwrite($write_file, "\n");
$counter = 1;
}
が起こっていただきました!上の任意のアイデア?
私は簡単なテストとして「\ N \ N」に入れています。何奇妙ですが、私はメモ帳で、この中に表示した場合、それはまだくっついているが、私はワードパッドでそれを表示する場合には、改行を示している?!
解決
他の人が示唆したように、それが原因改行は、お使いのOS上でエンコードされている方法に可能性があります。
しかし、むしろWindows固有の「\ rを\ n」は、私はあなたが(というよりも、バイナリ)テキスト内のファイルを開いてみてくださいすることを示唆しているモードを明示的出力より。テキストモードでの開口部の利点は、システムがそのOSに適切なものは何でも形式に改行コードを変換することです。そうすれば、あなたのコードは、よりポータブルであるべきであり、(うまくいけば)は、Windows / Linuxの/ Macのなどで正常に動作するはずです。
あなたがPHPを使用していると仮定すると、あなたがのfopenに( 'T')を "テキストモードの変換フラグ" を渡すことができます。
他のヒント
コードはo.k.に見えます
それはあなたが\n
改行を処理できないWindowsアプリケーションでファイルでlookignされているということはできますか?あなたが何か他のもので\n
に置き換えた場合はどうなりますか?
これはあなたのコードに問題が、あなたの視聴に問題はありません。変更の視聴者はあなたの問題を解決します。あなたの視聴者が理解して何か(\ Rの\ nの)にラインターミネータを変更すると、問題を解決します。重要なことは、後に消費することになるプログラムは、それが理解するような方法で行末を書くことです。それだけで視聴者の場合は、その行のターミネータを変更します。ちょうど改行文字を期待して別のプログラム場合は、視聴者を変更します。
様々なOS上で改行についてこれをお読みください。
Windowsは、UNIX(様)システムのみCR + LF
(\r\n
)を使用している間(即ちLF
)\n
を使用して新しい行を示します。
CR
=キャリッジリターン
LF
=改行
だから、おそらく\r\n
を使用する必要があります。しかし、ワードパッドなどの他のプログラムがあまりにも\n
のみを理解しているようです。
最善の方法は、あなたがの PHP定数PHP_EOL
を使用し、強いです>現在のOSのエンドオブラインインジケータを使用に、スクリプトが実行されている
fwrite($write_file, PHP_EOL);
あなたは\r\n
を使用して試すことができます。
CRLFの改行コードを使用してみてください。
"\r\n"