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 相关文章推荐
PHPMailer安装方法及简单实例
Nov 25 PHP
php 显示指定路径下的图片
Oct 29 PHP
解析php入库和出库
Jun 25 PHP
30个php操作redis常用方法代码例子
Jul 05 PHP
php_imagick实现图片剪切、旋转、锐化、减色或增加特效的方法
Dec 15 PHP
一个非常完美的读写ini格式的PHP配置类分享
Feb 12 PHP
php实现可运算的验证码
Nov 10 PHP
php中实现进程锁与多进程的方法
Sep 18 PHP
php 一维数组的循环遍历实现代码
Apr 10 PHP
PHP自定义函数判断是否为Get、Post及Ajax提交的方法
Jul 27 PHP
PHP错误提示It is not safe to rely on the system……的解决方法
Mar 25 PHP
jQuery+PHP实现图片上传并提交功能
Jul 27 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得到某段时间区间的时间戳 php定时任务
2012/04/12 PHP
使用PHP获取汉字的拼音(全部与首字母)
2013/06/27 PHP
php中strlen和mb_strlen用法实例分析
2016/11/12 PHP
PHP设计模式之模板方法模式实例浅析
2018/12/20 PHP
Yii 使用intervention/image拓展实现图像处理功能
2019/06/22 PHP
javascript indexOf函数使用说明
2008/07/03 Javascript
基于jquery的$.ajax async使用
2011/10/19 Javascript
JavaScript自执行闭包的小例子
2013/06/29 Javascript
js中单引号与双引号冲突问题解决方法
2013/10/04 Javascript
jQuery插件EnPlaceholder实现输入框提示文字
2015/06/05 Javascript
ANGULARJS中使用JQUERY分页控件
2015/09/16 Javascript
原生JS和jQuery版实现文件上传功能
2016/04/18 Javascript
基于jQuery的Web上传插件Uploadify使用示例
2016/05/19 Javascript
JavaScript sort数组排序方法和自我实现排序方法小结
2016/06/06 Javascript
原生JS实现图片左右轮播
2016/12/30 Javascript
jquery操作select取值赋值与设置选中实例
2017/02/28 Javascript
JavaScript全屏和退出全屏事件总结(附代码)
2017/08/17 Javascript
对存在JavaScript隐式类型转换的四种情况的总结(必看篇)
2017/08/31 Javascript
说说AngularJS中的$parse和$eval的用法
2017/09/14 Javascript
JQuery实现ajax请求的示例和注意事项
2018/12/10 jQuery
[03:01]完美世界DOTA2联赛PWL S2 集锦第二期
2020/12/03 DOTA
python 实时遍历日志文件
2016/04/12 Python
Python科学计算之Pandas详解
2017/01/15 Python
python XlsxWriter模块创建aexcel表格的实例讲解
2018/05/03 Python
python+selenium select下拉选择框定位处理方法
2019/08/24 Python
初中三年毕业生的自我评价分享
2014/02/14 职场文书
教师考核材料
2014/05/21 职场文书
岗位职责说明书模板
2014/07/30 职场文书
借名购房协议书范本
2014/10/06 职场文书
求职自荐信怎么写
2015/03/04 职场文书
2015年初三班主任工作总结
2015/05/21 职场文书
指导老师鉴定意见
2015/06/05 职场文书
廉洁自律心得体会2016
2016/01/13 职场文书
什么是执行力?9个故事告诉您:成功绝非偶然!
2019/07/05 职场文书
Python生成九宫格图片的示例代码
2021/04/14 Python
Java基础——Map集合
2022/04/01 Java/Android