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语法(3)
Oct 09 PHP
15种PHP Encoder的比较
Apr 17 PHP
基于Windows下Apache PHP5.3.1安装教程
Jan 08 PHP
PHP中include()与require()的区别说明
Mar 10 PHP
在PHP中利用wsdl创建标准webservice的实现代码
Dec 07 PHP
使用迭代器 遍历文件信息的详解
Jun 08 PHP
使用array mutisort 实现按某字段对数据排序
Jun 18 PHP
深入解析Session是否必须依赖Cookie
Aug 02 PHP
PHP魔术引号所带来的安全问题分析
Jul 15 PHP
php实现过滤字符串中的中文和数字实例
Jul 29 PHP
JS+PHP实现用户输入数字后显示最大的值及所在位置
Jun 19 PHP
php+laravel 扫码二维码签到功能
May 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弹出提示框并跳转到新页面即重定向到新页面
2014/01/24 PHP
Laravel 5 框架入门(三)
2015/04/09 PHP
PHP中for循环与foreach的区别
2017/03/06 PHP
利用PHPStorm如何开发Laravel应用详解
2017/08/30 PHP
JavaScript日期时间与时间戳的转换函数分享
2015/01/31 Javascript
jQuery的load()方法及其回调函数用法实例
2015/03/25 Javascript
JavaScript中的substr()方法使用详解
2015/06/06 Javascript
常用DOM整理
2015/06/16 Javascript
jQuery实现区域打印功能代码详解
2016/06/17 Javascript
JavaScript使用原型和原型链实现对象继承的方法详解
2017/04/05 Javascript
vue 使用Jade模板写html,stylus写css的方法
2018/02/23 Javascript
js实现鼠标拖拽缩放div实例代码
2019/03/25 Javascript
微信小程序收货地址API兼容低版本解决方法
2019/05/18 Javascript
jQuery 动态粒子效果示例代码
2020/07/07 jQuery
跟老齐学Python之??碌某?? target=
2014/09/12 Python
python常见数制转换实例分析
2015/05/09 Python
在Mac OS系统上安装Python的Pillow库的教程
2015/11/20 Python
Python 内置函数complex详解
2016/10/23 Python
浅析python中SQLAlchemy排序的一个坑
2017/02/24 Python
Python 的类、继承和多态详解
2017/07/16 Python
Python程序退出方式小结
2017/12/09 Python
TensorFlow中权重的随机初始化的方法
2018/02/11 Python
Django实战之用户认证(初始配置)
2018/07/16 Python
详解用pyecharts Geo实现动态数据热力图城市找不到问题解决
2019/06/26 Python
Django打印出在数据库中执行的语句问题
2019/07/25 Python
提供世界各地便宜的机票:Sky-tours
2016/07/21 全球购物
介绍一下SQL Server的全文索引
2013/08/15 面试题
酒店服务与管理毕业生求职信
2013/11/02 职场文书
中班中秋节活动反思
2014/02/18 职场文书
道路交通安全实施方案
2014/03/12 职场文书
基层党建工作宣传标语
2014/06/24 职场文书
2014年自愿离婚协议书范本
2014/09/25 职场文书
处级干部反四风个人对照检查材料思想汇报
2014/09/27 职场文书
领导个人查摆剖析材料
2014/10/29 职场文书
一篇文章带你学习Mybatis-Plus(新手入门)
2021/08/02 Java/Android
instantclient客户端 连接oracle数据库
2022/04/26 Oracle