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和ACCESS写聊天室(十)
Oct 09 PHP
PHP与SQL注入攻击[二]
Apr 17 PHP
php面向对象全攻略 (七) 继承性
Sep 30 PHP
php读取目录及子目录下所有文件名的方法
Oct 20 PHP
php通过session防url攻击方法
Dec 10 PHP
php通过function_exists检测函数是否存在的方法
Mar 18 PHP
PHP弹出对话框技巧详细解读
Sep 26 PHP
PHP比较运算符的详细介绍
Sep 29 PHP
64位windows系统下安装Memcache缓存
Dec 06 PHP
PHP实现冒泡排序的简单实例
May 26 PHP
PHP中类型转换 ,常量,系统常量,魔术常量的详解
Oct 26 PHP
PHP命名空间与自动加载类详解
Sep 04 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
thinkphp3.0 模板中函数的使用
2012/11/13 PHP
php微信公众号开发之校园图书馆
2018/10/20 PHP
小型js框架veryide.librar源代码
2009/03/05 Javascript
javascript基础第一章 JavaScript与用户端
2010/07/22 Javascript
在JavaScript中获取请求的URL参数[正则]
2010/12/25 Javascript
JQuery+JS实现仿百度搜索结果中关键字变色效果
2011/08/02 Javascript
JQuery DataTable删除行后的页面更新利用Ajax解决
2013/05/17 Javascript
jquery封装的对话框简单实现
2013/07/21 Javascript
js如何实现设计模式中的模板方法
2013/07/23 Javascript
从jquery的过滤器.filter()方法想到的
2013/09/29 Javascript
jqgrid 编辑添加功能详细解析
2013/11/08 Javascript
jQuery实现TAB选项卡切换特效简单演示
2016/03/04 Javascript
jQuery+CSS3实现四种应用广泛的导航条制作实例详解
2016/09/17 Javascript
微信小程序模拟cookie的实现
2018/06/20 Javascript
Element InputNumber计数器的使用方法
2020/07/27 Javascript
js实现手表表盘时钟与圆周运动
2020/09/18 Javascript
JavaScript基于SVG的图片切换效果实例代码
2020/12/15 Javascript
Python 自动补全(vim)
2014/11/30 Python
python使用Flask框架获取用户IP地址的方法
2015/03/21 Python
Python实现完整的事务操作示例
2017/06/20 Python
对python实时得到鼠标位置的示例讲解
2018/10/14 Python
Python实现DDos攻击实例详解
2019/02/02 Python
Flask框架模板继承实现方法分析
2019/07/31 Python
Python序列化pickle模块使用详解
2020/03/05 Python
Python环境下安装PyGame和PyOpenGL的方法
2020/03/25 Python
python实现与redis交互操作详解
2020/04/21 Python
python Canny边缘检测算法的实现
2020/04/24 Python
python爬虫判断招聘信息是否存在的实例代码
2020/11/20 Python
JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?
2015/10/22 面试题
急诊科护士自我鉴定
2013/10/14 职场文书
广告传媒专业应届生求职信
2014/03/01 职场文书
竞选学习委员演讲稿
2014/04/28 职场文书
施工安全标语
2014/06/07 职场文书
2016元旦文艺汇演主持词
2015/07/06 职场文书
小学语文教师竞聘演讲稿范文
2019/08/09 职场文书
MySQL 数据类型详情
2021/11/11 MySQL