質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

4回答

2776閲覧

PHPのCSVファイルの読み込みについて

ssk

総合スコア332

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/06/14 09:16

編集2017/06/14 10:41

###前提・実現したいこと
CSVインポートする際
foo3とbar1の間の改行がうまく反映されません。

###発生している問題・エラーメッセージ

PHP

1[ 2 (int) 0 => 'foo1', 3 (int) 1 => 'foo2', 4 (int) 2 => 'foo3 5bar1', 6 (int) 3 => 'bar2', 7 (int) 4 => 'bar3' 8] 9 10###実現したいコード 11/* 12Array 13( 14 [0]=>Array 15 ( 16 [0]=>'foo1', 17 [1]=>'foo2', 18 [2]=>'foo3', 19 ) 20 [1]=>Array 21 ( 22 [0]=>'bar1', 23 [1]=>'bar2', 24 [2]=>'bar3', 25 ) 26) 27*/

###該当のソースコード

CSV

1//CSVファイルの内容 文字コードはUTF8 2foo1,foo2,foo3 3bar1,bar2,bar3

PHP

1$csvfile = new SplFileObject($filepath); 2$csvfile->setFlags(SplFileObject::READ_CSV); 3foreach ($csvfile as $line) { 4 //終端の空行を除く処理 空行の場合に取れる値は後述 5 if(!is_null($line[0])){ 6 $records[] = $line; 7} 8}

###補足情報(言語/FW/ツール等のバージョンなど)
参考にしているサイトとコードは以下
http://qiita.com/kazu56/items/06660b0dc8638a6c948f

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

ベストアンサー

CSVの改行コードがもしかしたら、Mac用の改行コードのCRになっているのではないでしょうか?(sakuraエディタなどで確認できます。)
上述の命令は、CRLFまたはLFでは正しく動作するのですが、CRには対応していない様で、同じ1行として扱われてしまうようです。

投稿2017/06/15 02:50

motuo

総合スコア3027

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ssk

2017/06/15 03:23

ありがとうございます! 仰る通りでした。1日悩んでいたので、助かりました><
guest

0

こちらのサイトを参考にしてみてはいいがでしょうか

[PHP]文字化けせずにCSVファイルを読み込み、配列に変換する

投稿2017/06/15 01:54

teremelody

総合スコア14

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ssk

2017/06/15 03:25

改行のコードの問題でした>< 参考URLありがとうございます。
guest

0

反映されないというのは画面に表示するとき?
単に改行コードを変換して出力していないだけというオチではないですよね

投稿2017/06/14 23:39

yuki84web

総合スコア1857

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ssk

2017/06/15 01:22

print_rで画面に出力しています。
guest

0

参考にされているサイトの記事のコメント欄はご覧になりましたでしょうか??

貼っていただいたソースコードだと動かないような気がします。

投稿2017/06/14 09:21

s.t.

総合スコア2021

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ssk

2017/06/14 10:28

ありがとうございます。 if(!is_null($line[0])){ ↑このように変更しても結果は同じでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問