服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - PHP教程 - PHP fgetcsv 定义和用法(附windows与linux下兼容问题)

PHP fgetcsv 定义和用法(附windows与linux下兼容问题)

2020-01-02 16:11PHP教程网 PHP教程

PHP fgetcsv() 函数从文件指针中读入一行并解析 CSV 字段。与PHP fgets() 类似,不同的是 PHP fgetcsv() 解析读入的行并找出 CSV 格式的字段,然后返回一个包含这些字段的数组

PHP fgetcsv 定义和用法 

  PHP fgetcsv() 函数从文件指针中读入一行并解析 CSV 字段。 
  与PHP fgets() 类似,不同的是 PHP fgetcsv() 解析读入的行并找出 CSV 格式的字段,然后返回一个包含这些字段的数组。 

  fgetcsv() 出错时返回 FALSE,包括碰到文件结束时。 

  注释:从 PHP 4.3.5 起,PHP fgetcsv() 的操作是二进制安全的。

语法

fgetcsv(file,length,separator,enclosure)

参数

描述

file

必需。规定要检查的文件。

length

可选。规定行的最大长度。必须大于 CVS 文件内最长的一行。 
在 PHP 5 中该参数是可选的。在 PHP 5 之前是必需的。 
如果忽略(在 PHP 5.0.4 以后的版本中设为 0)该参数的话,那么长度就没有限制,不过可能会影响执行效率。

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 ) 

windows与linux下兼容问题

今天有问题报过来说linux平台下 fgetcsv处理的有空数据产生起初以为中php版本问题,其实和版本没有关系 在window下开发的同事都没有问题,而自己的本本和服务器上,和使用linux系统的同事 都出现空数据的问题 

google一下 

设置区域:简体中文,UTF-8编码 

复制代码代码如下:


setlocale(LC_ALL, 'zh_CN.UTF-8'); 

延伸 · 阅读

精彩推荐