PHP fgetcsv()関数
定義と使用方法
fgetcsv()関数はファイルポインタから一行を読み取り、CSVフィールドを解析します。
および fgets() 同様ですが、fgetcsv()は読み込んだ行を解析し、CSV形式のフィールドを見つけ、それらのフィールドを含む配列を返します。
fgetcsv()がエラーが発生した場合、FALSEを返します。ファイルの終わりに達しても同じです。
コメント:PHP 4.3.5から、fgetcsv()の操作は二進方式安全です。
文法
fgetcsv(file,length,separator,enclosure)
パラメータ | 説明 |
---|---|
file | 必須です。チェックするファイルを指定します。 |
length |
オプションです。行の最大長を指定します。CVPファイル内の最長行より大きくする必要があります。 PHP 5ではオプションです。PHP 5以前では必須です。 PHP 5.0.4 以降のバージョンでは無視(0に設定されている)場合、長さに制限はありませんが、実行効率に影響を与える可能性があります。 |
separator | オプション。フィールドの区切り文字(1文字のみ許可)を設定します。デフォルト値はカンマです。 |
enclosure |
オプション。フィールドの囲み文字(1文字のみ許可)を設定します。デフォルト値はダブルクォートです。 このパラメータは PHP 4.3.0 で追加されました。 |
ヒントとコメント
コメント:CSV ファイルの空行は、単一の null フィールドを含む配列として返され、エラーとして処理されません。
コメント:この関数はローカライズに依存しています。例えば、LANG が en_US.UTF-8 に設定されている場合、単バイトエンコーディングのファイルでは読み取りエラーが発生します。
コメント:PHP がファイルを読み込む際に Macintosh ファイルの行終了記号を認識できない場合、auto_detect_line_endings 运行時設定オプションを有効にすることができます。
例
例 1
<?php $file = fopen("contacts.csv","r"); print_r(fgetcsv($file)); fclose($file); ?>
CSV ファイル:
George, John, Thomas, USA James, Adrew, Martin, USA
出力例:
配列 ( [0] => George [1] => John [2] => Thomas [3] => USA )
例 2
<?php $file = fopen("contacts.csv","r"); while(! feof($file)) { print_r(fgetcsv($file)); } fclose($file); ?>
CSV ファイル:
George, John, Thomas, USA James, Adrew, Martin, USA
出力例:
配列 ( [0] => George [1] => John [2] => Thomas [3] => USA 配列 ( [0] => James [1] => Adrew [2] => Martin [3] => USA )