CSVファイルを配列に読み込む - fgetcsv()
当ページのリンクには広告が含まれています。
プログラミング言語PHPで、引数に指定したCSVファイルから配列を出力する関数 fgetcsv()を紹介します。
fgetcsv関数
array fgetcsv ( resource $handle [, int $length = 0 [, string $delimiter [, string $enclosure ]]] )
引数に指定したCSVファイルを1行ずつ読み込み、配列を返します。
引数 $handle fopen関数で正常にオープンされた、有効なファイルポインタを指定します。 $length 取得するデータの長さを指定します。 $delimiter 区切り文字を指定します(1文字)。 指定しない場合はカンマ「,」。 $enclosure 文字列を囲む記号を指定します(1文字)。 指定しない場合はダブルクォーテーション「"」。
返り値
読み込んだCSVファイルから配列を返します。
サンプルコード
指定したCSVファイルを読み込み、そのデータから配列を返すサンプルコードです。
fgetcsv( ファイルポインタ )
<?php /* 読み込むCSVファイルを作成 */ $str = <<<EOD Windows,Mac,Linux MySQL,PostgreSQL,SQLite EOD; file_put_contents('test.csv', $str); /* ファイルポインタをオープン */ $file = fopen("test.csv", "r"); /* CSVファイルを配列へ */ if( $file ){ while( !feof($file) ){ var_dump( fgetcsv($file) ); } } /* ファイルポインタをクローズ */ fclose($file); ?>
- PHP基本構文「ヒアドキュメント」
- 文字列をファイルに書き込む - file_put_contents()
- ファイルを開く・閉じる - fopen()、fclose()
- ファイルが最後まで読み込まれたかどうかを確認
実行結果です。
array(4) { [0]=> string(1) "0" [1]=> string(7) "Windows" [2]=> string(3) "Mac" [3]=> string(5) "Linux" } array(4) { [0]=> string(1) "1" [1]=> string(5) "MySQL" [2]=> string(10) "PostgreSQL" [3]=> string(6) "SQLite" }
読み込んだCSVファイルが配列として返されています。