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 Smarty模板生成html文档的方法
Apr 12 PHP
PHP中调用ASP.NET的WebService的代码
Apr 22 PHP
php 验证码(倾斜,正弦干扰线,黏贴,旋转)
Jun 29 PHP
mongo Table类文件 获取MongoCursor(游标)的实现方法分析
Jul 01 PHP
php递归获取目录内文件(包含子目录)封装类分享
Dec 25 PHP
使用PHP如何实现高效安全的ftp服务器(二)
Dec 30 PHP
Zend Framework动作助手Redirector用法实例详解
Mar 05 PHP
PHP获取指定时间段之间的 年,月,天,时,分,秒
Jun 05 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
Nov 12 PHP
PHP面向对象程序设计模拟一般面向对象语言中的方法重载(overload)示例
Jun 13 PHP
PHP查找一列有序数组是否包含某值的方法
Feb 07 PHP
WordPress多语言翻译插件 - WPML使用教程
Apr 01 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
2019年漫画销量排行榜:鬼灭登顶 海贼单卷制霸 尾田盛赞鬼灭
2020/03/08 日漫
php 缓存函数代码
2008/08/27 PHP
php array_push()数组函数:将一个或多个单元压入数组的末尾(入栈)
2011/07/12 PHP
php在文件指定行中写入代码的方法
2012/05/23 PHP
解决File size limit exceeded 错误的方法
2013/06/14 PHP
Parse正式发布开源PHP SDK
2014/08/11 PHP
php使用cookie实现记住用户名和密码实现代码
2015/04/27 PHP
thinkPHP分组后模板无法加载问题解决方法
2016/07/12 PHP
深入理解PHP JSON数组与对象
2016/07/19 PHP
PHP脚本自动识别验证码查询汽车违章
2016/12/20 PHP
jquery实用代码片段集合
2010/08/12 Javascript
jQuery学习之prop和attr的区别示例介绍
2013/11/15 Javascript
JavaScript作用域链示例分享
2014/05/27 Javascript
Node.js 日志处理模块log4js
2016/08/28 Javascript
微信小程序 解决swiper不显示图片的方法
2017/01/04 Javascript
详解有关easyUI的拖动操作中droppable,draggable用法例子
2017/06/03 Javascript
如何在Angular应用中创建包含组件方法示例
2019/03/23 Javascript
vue实现移动端省市区选择
2019/09/27 Javascript
Vue项目vscode 安装eslint插件的方法(代码自动修复)
2020/04/15 Javascript
React+EggJs实现断点续传的示例代码
2020/07/07 Javascript
python获取远程图片大小和尺寸的方法
2015/03/26 Python
CentOS 6.5中安装Python 3.6.2的方法步骤
2017/12/03 Python
django启动uwsgi报错的解决方法
2018/04/08 Python
Python安装OpenCV的示例代码
2020/03/05 Python
CSS Grid布局教程之浏览器开启CSS Grid Layout汇总
2014/12/30 HTML / CSS
CSS3 flex布局之快速实现BorderLayout布局
2015/12/03 HTML / CSS
用canvas实现图片滤镜效果附演示
2013/11/05 HTML / CSS
应届毕业生应聘自荐信
2013/12/07 职场文书
大学活动总结模板
2014/07/10 职场文书
骨干教师考核评语
2014/12/31 职场文书
小学运动会开幕词
2015/01/28 职场文书
挂职锻炼工作总结2015
2015/05/28 职场文书
优秀新员工事迹材料
2019/05/13 职场文书
超详细教你怎么升级Mysql的版本
2021/05/19 MySQL
Python基础数据类型tuple元组的概念与用法
2021/08/02 Python
MySQL千万级数据表的优化实战记录
2021/08/04 MySQL