みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

取り込みたいCSVファイルはSJIS、私のHPはEUC。

新規であるサイトからタブ区切りのCSVファイルを取り込もうと思っています。
CSVはhttp://sample.csvという形で公開されており、コードはSJISです。
私のHPはEUCで書いているので文字コードの違いで悩んでいます。


■こんな形で取り込んでみました。
$data=file('http://sample.csv');
foreach($data as $new_data){
list($n1,$n2,$n3,$n4,$n5,$n6,$n7,$n8,$n9)=split("t",$new_data);
echo $n1 . "<br>";
}


■解決案
この一行を様々な箇所に入れてみるのですがどこで使っても
取り込んだ$n1の日本語がEUCで表示されません。

$n1=mb_convert_encoding($n1,"EUC-JP","SJIS");

出来れば取り込んだ時点全ての変数をEUCに変えたいんですが、
うまくいきません。
一旦CSVファイルを自分のサイトに取り込み保存するなどしてそれを使いまわす方がよいのでしょうか?

原因を考えるのですが行き詰っています。どなたかお力をお借りできればありがたいです。
(またこのPHP文章の場合CSVの行数が100行なら$n1が100行全て表示されてしまいます。上から5つだけ$n1を表示などもかのうでしょうか?)

投稿日時 - 2006-05-05 01:21:58

QNo.2131654

すぐに回答ほしいです

質問者が選んだベストアンサー

#実際に試してはいないのですが、こんな感じでどうでしょう
$data=file('​http://sample.csv');​
foreach($data as $new_data){
$new_data = mb_convert_encoding($new_data, "EUC-JP", "SJIS");
list($n1, $n2, $n3,$n4,$n5,$n6,$n7,$n8,$n9)= explode("\t", $new_data);
echo "$n1<br>";
}

投稿日時 - 2006-05-05 03:45:34

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

#1>$data=file('http://sample.csv');
なんかゴミが付いてきましたが、ここは元通りで・
$date=file('http://sample.csv');

投稿日時 - 2006-05-05 03:49:06

お礼

解決しました。
もう全部自分のページをSJISにしなきゃいけないかとあきらめてたんですが助かりました!

投稿日時 - 2006-05-05 23:54:57

あなたにオススメの質問