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 相关文章推荐
文件系统基本操作类
Nov 23 PHP
xajax写的留言本
Nov 25 PHP
php 来访国内外IP判断代码并实现页面跳转
Dec 18 PHP
php Xdebug 调试扩展的安装与使用.
Mar 13 PHP
PHP setcookie设置Cookie用法(及设置无效的问题)
Jul 13 PHP
file_get_contents(&quot;php://input&quot;, &quot;r&quot;)实例介绍
Jul 01 PHP
php判断是否为json格式的方法
Mar 04 PHP
浅谈PHP解析URL函数parse_url和parse_str
Nov 11 PHP
PHP表单数据写入MySQL数据库的代码
May 31 PHP
Netbeans 8.2与PHP相关的新特性介绍
Oct 08 PHP
php使用正则表达式去掉html中的注释方法
Nov 03 PHP
Laravel6.0.4中将添加计划任务事件的方法步骤
Oct 15 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数组函数序列 之array_count_values() 统计数组中所有值出现的次数函数
2011/10/29 PHP
php下载文件的代码示例
2012/06/29 PHP
Smarty局部缓存的几种方法简介
2014/06/17 PHP
JSON用法之将PHP数组转JS数组,JS如何接收PHP数组
2015/10/08 PHP
鼠标右击事件代码(asp.net后台)
2011/01/27 Javascript
jquery tab插件精简版分享
2011/09/10 Javascript
JavaScript中Function详解
2015/02/27 Javascript
JavaScript中的return语句简单介绍
2015/12/07 Javascript
jquery在ie7下选择器的问题导致append失效的解决方法
2016/01/10 Javascript
bootstrap jquery dataTable 异步ajax刷新表格数据的实现方法
2017/02/10 Javascript
JS中的作用域链
2017/03/01 Javascript
jQury Ajax使用Token验证身份实例代码
2017/09/22 Javascript
利用jqprint插件打印页面内容的实现方法
2018/01/09 Javascript
使用FormData实现上传多个文件
2018/12/04 Javascript
jQuery选择器之基本过滤选择器用法实例分析
2019/02/19 jQuery
vue插槽slot的理解和使用方法
2019/04/03 Javascript
vue 关闭浏览器窗口的时候,清空localStorage的数据示例
2019/11/06 Javascript
vue实现在线学生录入系统
2020/05/30 Javascript
解决vue单页面多个组件嵌套监听浏览器窗口变化问题
2020/07/30 Javascript
Python 数据结构之旋转链表
2017/02/25 Python
python文件写入write()的操作
2019/05/14 Python
Python 解决OPEN读文件报错 ,路径以及r的问题
2019/12/19 Python
将labelme格式数据转化为标准的coco数据集格式方式
2020/02/17 Python
Django中如何用xlwt生成表格的方法步骤
2021/01/31 Python
HTML5画渐变背景图片并自动下载实现步骤
2013/11/18 HTML / CSS
Waterford加拿大官方网站:世界著名的水晶杯品牌
2016/11/01 全球购物
独特的礼品和创新的科技产品:The Grommet
2018/02/24 全球购物
高级3D打印市场:Gambody
2019/12/26 全球购物
serialVersionUID具有什么样的特征
2014/02/20 面试题
EJB3.1都有哪些改进
2012/11/17 面试题
大专计算机个人求职的自我评价
2013/10/21 职场文书
数控专业应届生求职信
2013/11/27 职场文书
大学生个人实习的自我评价
2014/02/15 职场文书
汇源肾宝广告词
2014/03/20 职场文书
CSS3点击按钮圆形进度打钩效果的实现代码
2021/03/30 HTML / CSS
MySQL infobright的安装步骤
2021/04/07 MySQL