プロが教えるわが家の防犯対策術!

環境:XP&Apache&PHP5&MySQL5
txtファイルを作成しダウンロードさせるプログラムを書いています。
改行が
マークになってしまいます。
SQLからtxtを作成する際、 print("\n");で改行させているつもりなのですが、
改行が
マークになってしまいます。
例:branchname,date,judgment,stuname,branchcode,syainid,branch,maxpercent,
人事部,2008-07-08,合,長谷部 一郎,a1000000000000000001,92D311,b1000000000000000002,99,
人事部,2008-07-16,否,首藤 美由子,a1000000000000000001,94K635,a1000000000000000001,60,
人事部,,,稲葉 雅昭,a1000000000000000001,79L112,,,
人事部,

参考サイト・書籍・アドバイス等ありましたら教えてください。


参考までに、以下プログラムです。
<?php header("Content-Type: application/octet-stream"); ?>
<?php header("Content-Disposition: attachment; filename=bangou.txt"); ?>
<?php
include_once('connection.php');
$sql="select * from table";

$rs=mysql_query($sql);
for($i=0; $i<mysql_num_fields($rs); $i++){
print (mb_convert_encoding(mysql_field_name($rs,$i),"SJIS").",");
}
print("\n");
for($j=0 ;$j<mysql_num_rows($rs); $j++) {
for($k=0; $k<mysql_num_fields($rs); $k++) {
$str=mysql_result($rs,$j,$k);
print (mb_convert_encoding($str,"SJIS").",");
}
print("\n");
}
?>

A 回答 (1件)

改行コードの違いですね~


基礎的なことなので知らなかったならしっかり覚えましょう。
といいつつ、私もはじめはなんじゃこりゃって思いましたけど・・・

OSごとに改行コード(改行文字の文字コード)が違うため起こる現象です。

Windows \r\n
Macintosh \r
unix系 \n

となります。
ブラウザとかで表示させると違いを吸収してしまうのでわかりにくいですね。

print("\r\n");
とでもしておけば、Windows でも表示できるのではないでしょうか?

いちおう、コーディングをされるのであれば、メモ帳以外のエディタの導入をお勧めします。
php editor
http://phpspot.net/php/phpeditor.html
MKEditor for Windows
http://www.vector.co.jp/soft/win95/writing/se083 …
このあたりであれば、文字コードや改行コードの違いを吸収して表示編集できますよ。

参考URL:http://ja.wikipedia.org/wiki/%E6%94%B9%E8%A1%8C% …
    • good
    • 0
この回答へのお礼

ありがとうございました。
できました。

お礼日時:2008/10/11 05:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!