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
)