fgetcsv

(PHP3 >= 3.0.8, PHP4 )

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);