PHP マニュアル
前のページ |  | 次のページ

# fgetcsv

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

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

## 説明

array fgetcsv ( resource handle, int length [, string delimiter [, string enclosure]])

fgets()に動作は似ていますが、 fgetcsv()は行をCSVフォーマッ トのフィールドとして読込み処理を行い、読み込んだフィールドを含む 配列を返すという違いがあります。フィールドのデリミタは、オプショ ンの3番目のパラメータで別のデリミタを指定した場合を除きカンマです。 また、オプションの `enclosure` (フィールド囲い子) パラメータは、別の文字を4番目のパラメータで 指定しない限り、デフォルトではダブルクォーテーショーンマークとなります。 `enclosure` と `delimiter` はそれぞれ1文字に限られており、もし1文字を超える文字列が指定された場合は、 最初の文字だけが使われます。

> 注意: `enclosure`引数はPHP 4.3.0で追加されました。

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

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

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

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

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

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

explode(), file(), pack()も参照してください。

前のページ | ホーム | 次のページ
fgetc | 上に戻る | fgets