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 )