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 var_dump遍历对象属性的函数与应用代码
Jun 04 PHP
php生成随机密码的几种方法
Jan 17 PHP
PHP下判断网址是否有效的代码
Oct 08 PHP
PHP关联链接常用代码
Nov 05 PHP
解析php addslashes()与addclashes()函数的区别和比较
Jun 24 PHP
typecho插件编写教程(六):调用接口
May 28 PHP
PHP中对数组的一些常用的增、删、插操作函数总结
Nov 27 PHP
php好代码风格的阶段性总结
Jun 25 PHP
PHP实现图片的等比缩放和Logo水印功能示例
May 04 PHP
thinkphp3.2嵌入百度编辑器ueditor的实例代码
Jul 13 PHP
PHP将数据导出Excel表中的实例(投机型)
Jul 31 PHP
yii2多图上传组件的使用教程
May 10 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之数据库操作详解及乱码解决!
2007/01/02 PHP
PHP获取MAC地址的函数代码
2011/09/11 PHP
js鼠标点击事件在各个浏览器中的写法及Event对象属性介绍
2013/01/24 Javascript
JS+css 图片自动缩放自适应大小
2013/08/08 Javascript
浅析jquery某一元素重复绑定的问题
2014/01/03 Javascript
js的window.showModalDialog及window.open用法实例分析
2015/01/29 Javascript
关于延迟加载JavaScript
2015/05/05 Javascript
jQuery地图map悬停显示省市代码分享
2015/08/20 Javascript
Bootstrap每天必学之js插件
2015/11/30 Javascript
详解AngularJS控制器的使用
2016/03/09 Javascript
jQuery实现页面滚动时智能浮动定位
2017/01/08 Javascript
浅谈jQuery的bind和unbind事件(绑定和解绑事件)
2017/03/02 Javascript
Angular.js基础学习之初始化
2017/03/10 Javascript
JavaScript获取tr td 的三种方式全面总结(推荐)
2017/08/15 Javascript
深入浅析Vue.js计算属性和侦听器
2018/05/05 Javascript
Vue数据双向绑定的深入探究
2018/11/27 Javascript
微信小程序websocket实现即时聊天功能
2019/05/21 Javascript
Bootstrap实现省市区三级联动(亲测可用)
2019/07/26 Javascript
Vue实现开心消消乐游戏算法
2019/10/22 Javascript
[44:09]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第二局
2016/02/25 DOTA
python解析发往本机的数据包示例 (解析数据包)
2014/01/16 Python
在Python3中初学者应会的一些基本的提升效率的小技巧
2015/03/31 Python
Python 爬虫图片简单实现
2017/06/01 Python
Python实现的矩阵类实例
2017/08/22 Python
Python2实现的LED大数字显示效果示例
2017/09/04 Python
Python读取Excel表格,并同时画折线图和柱状图的方法
2018/10/14 Python
python实现按首字母分类查找功能
2019/10/31 Python
如何基于Python按行合并两个txt
2020/11/03 Python
详解如何使用CSS3中的结构伪类选择器和伪元素选择器
2020/01/06 HTML / CSS
html5-websocket基于远程方法调用的数据交互实现
2012/12/04 HTML / CSS
html5 Canvas画图教程(3)—canvas出现1像素线条模糊不清的原因
2013/01/09 HTML / CSS
英国在线购买马术服装:EQUUS
2019/07/12 全球购物
台湾三立电视电商平台:电电购
2019/09/09 全球购物
小学生推普周国旗下讲话稿
2014/09/21 职场文书
初中生考试作弊检讨书
2014/12/14 职场文书
JS 4个超级实用的小技巧 提升开发效率
2021/10/05 Javascript