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 相关文章推荐
Linux下进行MYSQL编程时插入中文乱码的解决方案
Mar 15 PHP
PHP爆绝对路径方法收集整理
Sep 17 PHP
探讨PHP JSON中文乱码的解决方法详解
Jun 06 PHP
解析PHP高效率写法(详解原因)
Jun 20 PHP
php数组编码转换示例详解
Mar 11 PHP
php生成不重复随机数、数组的4种方法分享
Mar 30 PHP
Yii获取当前url和域名的方法
Jun 08 PHP
PHP获取网站中各文章的第一张图片的代码示例
May 20 PHP
利用php + Laravel如何实现部署自动化详解
Oct 11 PHP
php连接MSsql server的五种方法总结
Mar 04 PHP
PHP7.0连接DB操作实例分析【基于mysqli】
Sep 26 PHP
PHP基于phpqrcode类生成二维码的方法示例详解
Aug 07 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自定义的格式化时间示例代码
2013/12/05 PHP
php利用smtp类实现电子邮件发送
2015/10/30 PHP
CI框架常用经典操作类总结(路由,伪静态,分页,session,验证码等)
2016/11/21 PHP
PHP simplexml_import_dom()函数讲解
2019/02/03 PHP
PHP defined()函数的使用图文详解
2019/07/20 PHP
JQuery 构建客户/服务分离的链接模型中Table中的排序分析
2010/01/22 Javascript
为JavaScript提供睡眠功能(sleep) 自编译JS引擎
2010/08/16 Javascript
Javascript数组操作函数总结
2015/02/05 Javascript
JavaScript中的cacheStorage使用详解
2015/07/29 Javascript
提升jQuery的性能需要做好七件事
2016/01/11 Javascript
jQuery+css实现的tab切换标签(兼容各浏览器)
2016/01/28 Javascript
JQuery validate插件验证用户注册信息
2016/05/11 Javascript
JavaScript中解决多浏览器兼容性23个问题的快速解决方法
2016/05/19 Javascript
详解JavaScript RegExp对象
2017/02/04 Javascript
微信小程序 数据遍历的实现
2017/04/05 Javascript
vue综合组件间的通信详解
2017/11/06 Javascript
vue.js项目打包上线的图文教程
2017/11/16 Javascript
简单谈谈CommonsChunkPlugin抽取公共模块
2017/12/31 Javascript
详解基于Vue2.0实现的移动端弹窗(Alert, Confirm, Toast)组件
2018/08/02 Javascript
微信小程序引入Vant组件库过程解析
2019/08/06 Javascript
JavaScript对象属性操作实例解析
2020/02/04 Javascript
小程序表单认证布局及验证详解
2020/06/19 Javascript
2018年Python值得关注的开源库、工具和开发者(总结篇)
2018/01/04 Python
python 删除字符串中连续多个空格并保留一个的方法
2018/12/22 Python
对python指数、幂数拟合curve_fit详解
2018/12/29 Python
使用k8s部署Django项目的方法步骤
2019/01/14 Python
Python3.5基础之函数的定义与使用实例详解【参数、作用域、递归、重载等】
2019/04/26 Python
python实现图像拼接功能
2020/03/23 Python
加拿大时装零售商:Influence U
2018/12/22 全球购物
AURALog面试题软件测试方面
2013/10/22 面试题
MYSQL相比于其他数据库有哪些特点
2013/07/19 面试题
环保倡议书怎么写
2014/05/16 职场文书
工作经验交流材料
2014/12/30 职场文书
大客户经理岗位职责
2015/04/09 职场文书
虚拟机linux端mysql数据库无法远程访问的解决办法
2021/05/26 MySQL
Docker 镜像介绍以及commit相关操作
2022/04/13 Servers