fgetcsv

fgetcsv -- ファイルポインタから行を取得し、CSVフィールドを処理する

説明

array fgetcsv(int fp, int length, string [delimiter]);

fgets() に動作は似ていますが、fgetcsv()は行をCSVフォーマットのフィールド用の 処理を行い、読み込まれたフィールドを含む配列を返すという違いがあります。 フィールドのデリミタは、オプションの3番目のパラメータで別のデリミタを指定 した場合を除きカンマです。

fp は、 fopen, popen, fsockopenで正常にオープンされたファイルへのファイルポインタである必要があります。

length は、(行末文字を考慮して) CSVファイルにある最も長い行よりも大きい必要があります。

fgetcsv() はファイルの終端に達した場合を含み、 エラー時にFALSEを返します。

CSVファイルの空行は ヌルフィールドを一つだけ含む配列として返され、 エラーにはなりません。

例 1. fgetcsv() の例 - CSVファイルの内容全体を読み込み出力します


$row=1;
$fp = fopen("test.csv","r");
while ($data = fgetcsv($fp,1000, ",")) {
	$num = count($data);
	print "<p> $num fields in line $row: <br>";
	$row++;
	for ( $c=0; $c<$num; $c++ ) print $data[$c] . "<br>";
}
fclose($fp);