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 相关文章推荐
BBS(php &amp; mysql)完整版(二)
Oct 09 PHP
不错的PHP学习之php4与php5之间会穿梭一点点感悟
May 03 PHP
PHP 数字左侧自动补0
Mar 31 PHP
php笔记之:php函数range() round()和list()的使用说明
Apr 26 PHP
PHP函数分享之curl方式取得数据、模拟登陆、POST数据
Jun 04 PHP
Yii结合CKEditor实现图片上传功能
Jun 13 PHP
Php连接及读取和写入mysql数据库的常用代码
Aug 11 PHP
Laravel中使用自己编写类库的3种方法
Feb 10 PHP
php实现的mongodb操作类
May 28 PHP
如何使用php实现评委评分器
Jul 31 PHP
Laravel 创建指定表 migrate的例子
Oct 09 PHP
PHP读取文件,解决中文乱码UTF-8的方法分析
Jan 22 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
浅谈PDO的rowCount函数
2015/06/18 PHP
PHP递归实现层级树状展开
2016/04/01 PHP
使用phpexcel类实现excel导入mysql数据库功能(实例代码)
2016/05/12 PHP
详解PHP使用日期时间处理器Carbon人性化显示时间
2017/08/10 PHP
js登录弹出层特效
2014/03/07 Javascript
jQuery针对各类元素操作基础教程
2014/08/29 Javascript
javascript实现汉字转拼音代码分享
2015/04/20 Javascript
全面解析Bootstrap手风琴效果
2020/04/17 Javascript
漂亮! js实现颜色渐变效果
2016/08/12 Javascript
使用Ajax与服务器(JSON)通信实例
2016/11/04 Javascript
vue数据双向绑定的注意点
2017/06/23 Javascript
layer子层给父层页面元素赋值,以达到向父层页面传值的效果实例
2017/09/22 Javascript
bootstrap-Treeview实现级联勾选
2017/11/23 Javascript
JavaScript函数、闭包、原型、面向对象学习笔记
2018/09/06 Javascript
浅谈vue项目4rs vue-router上线后history模式遇到的坑
2018/09/27 Javascript
vue el-table实现行内编辑功能
2019/12/11 Javascript
vue 中url 链接左边的小图标更改问题
2019/12/30 Javascript
JS实现单张或多张图片持续无缝滚动的示例代码
2020/05/10 Javascript
[01:10]DOTA2 Supermajor:英雄,由我们见证
2018/05/14 DOTA
[02:04]完美世界城市挑战赛秋季赛报名开始 谁是solo路人王?
2019/10/10 DOTA
python中for语句简单遍历数据的方法
2015/05/07 Python
举例讲解Python设计模式编程中的访问者与观察者模式
2016/01/26 Python
Python网络爬虫项目:内容提取器的定义
2016/10/25 Python
Python 专题一 函数的基础知识
2017/03/16 Python
详解Python 协程的详细用法使用和例子
2018/06/15 Python
对Python 数组的切片操作详解
2018/07/02 Python
python 实现批量xls文件转csv文件的方法
2018/10/23 Python
python实现多进程按序号批量修改文件名的方法示例
2019/12/30 Python
Keras 使用 Lambda层详解
2020/06/10 Python
如何解决cmd运行python提示不是内部命令
2020/07/01 Python
Marmot土拨鼠官网:美国专业户外运动品牌
2018/01/11 全球购物
玉兰油美国官网:OLAY美国
2018/10/25 全球购物
《花瓣飘香》教学反思
2014/04/15 职场文书
新课培训心得体会
2014/09/03 职场文书
2016党性教育学习心得体会
2016/01/21 职场文书
商业计划书格式、范文
2019/03/21 职场文书