PHP の CSV読み込み fgetcsv 疑問まとめ
PHPで fgetcsv 使用時の疑問を確認したメモ $file = fopen($filepath, 'r'); while( $csv = fgetcsv($file) ){ print_r($csv); } fclose($file); 改行コード 改行コードは \r\n または \n 単独で存在する \r は通常の文字と同様に扱われる※混入注意 ダブルコーテーション内 戻り値(配列内)にダブルコーテーションは含まれない カンマ, \r\n, \n を含むデータを読み込むことが可能 ダブルコーテーションは、2つ連続で表現 例) "テスト""太郎""" → テスト"太郎" その他 ダブルコーテーションで括る必要がないデータを、括ってもよい ダブルコーテーションで括っていないダブルコーテーションは、通常の文字として扱われる 例) 1,あいうえお,かき"くけこ → [2]=かき"くけこ スペースは区切りではない(ダブルコーテーションで括る必要なし) カンマ前後のスペースも文字列として取得される(trimされない) 備考 \r = CR(0x0D=13) \n = LF(0x0A=10) Excel の Alt+Enter で入力したセル内の改行は、csv保存で ダブルコーテーション括りの \n となる Excel の csv保存(utf-8)で作成されたファイルは、fgetcsv で読み込める(確認した限り) Excel の csv保存は utf-8とデフォルトエンコード(sjis)が存在するので注意が必要