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ファイルが配列として返されています。