PHP7でCSVを読み込んで書き出したいと考えています。
CSVの中身は表にすると下記の図ようなシンプルなものです。
下記コードは、一つずつカンマ区切りで出力したサンプルになりますが、
ここで問題が発生しています。
php7
1<?php 2 $filename = 'test.csv'; 3 4 // fopenでファイルを開く。 5 $fp = fopen($filename, 'r'); 6 7 8 // CSVファイルの行数の数だけ実行 9 while($data = fgetcsv($fp)){ 10 11 for($i=0;$i<count($data);$i++){ 12 13 echo $data[$i].","; 14 15 } 16 17 } 18 // fcloseでファイルを閉じる。 19 fclose($fp); 20?>
「no,name,address,etc 1,taro,shizuoka,unknown 2,yamada,okayama,another 3,suzuki,numazu,not 4・・・」
となり、「no」という列にある数字が空白スペースで接続されてしまっています。
つまり「etc 1」で1つというかたちになります。半角スペースをexplodeして分割してもうまくいきません。
この問題は他の記事でも見かけましたし、検索すると下記のようなものを記載しなければいけないという記事がありましたが、指定しても直りません。
setlocale(LC_ALL,'ja_JP');
setlocale(LC_ALL, 'ja_JP.UTF-8');
setlocale(LC_ALL, 'ja_JP.EUC-JP');
setlocale(LC_ALL, 'ja_JP.Shift_JIS');
文字エンコードの関係で文字化けしているという認識ですが、
エンコードしても直りませんでした。
どなたか助けてください。
よろしくお願いします。
回答3件
あなたの回答
tips
プレビュー