人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

phpの fgetcsv について

例えばこういうデータを
--------------------
123,12345
12345,"12,345"
あああ,"222,222,222"
"さくら,杉",紅葉
--------------------

このようにして表示しようとすると
$fp = fopen("xxx.csv", 'r');
while ($line = fgetcsv($fp, 1000)) {
foreach ($line as $key => $val) {
print "$val,";
}
print "\n";
}

こうなってしまいます。
(行によって「"」が表示されてしまいます)

123,12345
12345,12,345
あああ,222,222,222
"さくら,杉",紅葉,


これは私の書き方がいけないのでしょうか?
それともこれが当たり前なのでしょうか?

よろしくお願いします。


●質問者: worldtravel
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:as CSV FP Key PHP
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● pahoo
●60ポイント ベストアンサー

処理的には合っていますが、日本語文字コードの指定がないのが原因かもしれません。

日本語文字コードを UTF-8 にして、区切り文字の処理が分かりにくかったので、下記のように書き換えてみました。試してみてください。

<?php
mb_internal_encoding('UTF-8');

$fp = fopen("hoge.csv", 'r');
while ($line = fgetcsv($fp, 1000, ',', '"')) {
 $i = 1;
 $n = count($line);
 foreach ($line as $val) {
 echo $val;
 $i++;
 if ($i <= $n) echo '/';
 }
 print "<br />\n";
}
?>
◎質問者からの返答

ありがとうございます。

早速試しましたが、結果は一緒でした。

こうなりました。

123/12345

12345/12,345

あああ/222,222,222

"さくら/杉"/紅葉

サーバはSAKURAを利用しています。

phpもcsvもUTF-8で保存しています。

実は数年前からこの状況を知っていたため

あえてcsvは一切使わないようにしてきました。

ところが最近事情がありcsvを使う必要があるため

再度チャレンジしたのですがダメでした。

他に考えられる原因がありましたら教えてください。

よろしくお願いします。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ