PHP fgetcsv()-funktionen

Definition och användning

fgetcsv()-funktionen läser en rad från filpekare och analyserar CSV-fält.

Med fgets() Liknande, men annorlunda är att fgetcsv() analyserar inlästa rader och letar efter CSV-formatfält, och returnerar sedan ett array som innehåller dessa fält.

fgetcsv() returnerar FALSE vid fel, inklusive när filen slutar.

注释:Från och med PHP 4.3.5 är fgetcsv() binär säker.

Syntaks

fgetcsv(file,length,separator,enclosure)
Parameter Beskrivning
file Obligatorisk. Bestämmer vilken fil som ska kontrolleras.
length

Valfri. Bestämmer maxlängden på raden. Måste vara längre än det längsta raden i CVS-filen.

I PHP 5 är parametern valfri. Innan PHP 5 var den nödvändig.

Om parametern ignoreras (sätts till 0 i versioner efter PHP 5.0.4), är längden obegränsad, men kan påverka exekveringseffektiviteten.

separator 可选。设置字段分界符(只允许一个字符),默认值为逗号。
enclosure

可选。设置字段环绕符(只允许一个字符),默认值为双引号。

该参数是在 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

输出类似:

Array 
( 
[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

输出类似:

Array 
( 
[0] => George
[1] => John 
[2] => Thomas
[3] => USA
Array
(
[0] => James
[1] => Adrew
[2] => Martin
[3] => USA
)