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


Posted in PHP onMay 29, 2012

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');
PHP 相关文章推荐
PHP 字符串编码截取函数(兼容utf-8和gb2312)
May 02 PHP
PHP IN_ARRAY 函数使用注意事项
Jul 24 PHP
php中函数的形参与实参的问题说明
Sep 01 PHP
PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
Dec 16 PHP
php数组声明、遍历、数组全局变量使用小结
Jun 05 PHP
基于PHP中的常用函数回顾
Jul 11 PHP
yii框架builder、update、delete使用方法
Apr 30 PHP
修改WordPress中文章编辑器的样式的方法详解
Dec 15 PHP
php实现无限级分类查询(递归、非递归)
Mar 10 PHP
php封装的smarty类完整实例
Oct 19 PHP
实例讲解通过​PHP创建数据库
Jan 20 PHP
Yii2框架自定义验证规则操作示例
Feb 08 PHP
PHP中将网页导出为Word文档的代码
May 25 #PHP
php在文件指定行中写入代码的方法
May 23 #PHP
php替换超长文本中的特殊字符的函数代码
May 22 #PHP
php提示undefined index的几种解决方法
May 21 #PHP
openflashchart 2.0 简单案例php版
May 21 #PHP
PHP中去掉字符串首尾空格的方法
May 19 #PHP
有关PHP中MVC的开发经验分享
May 17 #PHP
You might like
PHP加密扩展库Mcrypt安装和实例
2013/11/10 PHP
Yii调试SQL的常用方法
2014/07/09 PHP
ThinkPHP3.2.2实现持久登录(记住我)功能的方法
2016/05/16 PHP
JavaScript判断前缀、后缀是否是空格的方法
2015/04/15 Javascript
jquery通过name属性取值的简单实现方法
2016/06/20 Javascript
Angularjs 实现分页功能及示例代码
2016/09/14 Javascript
vuejs项目打包之后的首屏加载优化及打包之后出现的问题
2018/04/01 Javascript
跨域解决之JSONP和CORS的详细介绍
2018/11/21 Javascript
如何为vuex实现带参数的 getter和state.commit
2019/01/04 Javascript
vue-cli 为项目设置别名的方法
2019/10/15 Javascript
谈谈node.js中的模块系统
2020/09/01 Javascript
Python入门篇之文件
2014/10/20 Python
Python实现Const详解
2015/01/27 Python
python将字符串转换成数组的方法
2015/04/29 Python
对DataFrame数据中的重复行,利用groupby累加合并的方法详解
2019/01/30 Python
GitHub 热门:Python 算法大全,Star 超过 2 万
2019/04/29 Python
Python自动化之数据驱动让你的脚本简洁10倍【推荐】
2019/06/04 Python
通过python3实现投票功能代码实例
2019/09/26 Python
python中urllib.request和requests的使用及区别详解
2020/05/05 Python
django rest framework使用django-filter用法
2020/07/15 Python
Python 处理日期时间的Arrow库使用
2020/08/18 Python
Python Merge函数原理及用法解析
2020/09/16 Python
英国最大的手表网站:The Watch Hut
2017/03/31 全球购物
美国网上眼镜供应商:LEOTONY(眼镜、RX太阳镜和太阳镜)
2017/10/31 全球购物
英国高街奥特莱斯:Highstreet Outlet
2019/11/21 全球购物
用C#语言写出与SQLSERVER访问时的具体过程
2013/04/16 面试题
办公室副主任职责范本
2014/03/08 职场文书
抽奖活动主持词
2014/03/31 职场文书
高考励志标语
2014/06/05 职场文书
图书馆标语
2014/06/19 职场文书
终止劳动合同协议书
2014/10/05 职场文书
汤姆叔叔的小屋读书笔记
2015/06/30 职场文书
Nginx配置并兼容HTTP实现代码解析
2021/03/31 Servers
python中%格式表达式实例用法
2021/06/18 Python
Nebula Graph解决风控业务实践
2022/03/31 MySQL
Java8 Stream API 提供了一种高效且易于使用的处理数据的方式
2022/04/13 Java/Android