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+SqlServer实现分页显示
Oct 09 PHP
PHP array_flip() 删除重复数组元素专用函数
May 16 PHP
php在文件指定行中写入代码的方法
May 23 PHP
php生成扇形比例图实例
Nov 06 PHP
php判断字符串在另一个字符串位置的方法
Feb 27 PHP
PHP大批量插入数据库的3种方法和速度对比
Jul 08 PHP
php中strstr、strrchr、substr、stristr四个函数的区别总结
Sep 22 PHP
PHP中魔术变量__METHOD__与__FUNCTION__的区别
Sep 29 PHP
php实现监控varnish缓存服务器的状态
Dec 30 PHP
php中mysql操作buffer用法详解
Mar 19 PHP
laravel ORM 只开启created_at的几种方法总结
Jan 29 PHP
PHP创建对象的六种方式实例总结
Jun 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 文件状态缓存带来的问题
2008/12/14 PHP
PHP json格式和js json格式 js跨域调用实现代码
2012/09/08 PHP
thinkphp框架实现删除和批量删除
2016/06/29 PHP
laravel5表单唯一验证的实例代码
2019/09/30 PHP
JS拖动技术 关于setCapture使用
2010/12/09 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(二)人物行走的实现
2013/01/23 Javascript
toggle()隐藏问题的解决方法
2014/02/17 Javascript
nodejs调用cmd命令实现复制目录
2015/05/04 NodeJs
javascript适合移动端的日期时间拾取器
2015/11/10 Javascript
浅谈JavaScript的内置对象和浏览器对象
2016/06/03 Javascript
Three.js学习之Lamber材质和Phong材质
2016/08/04 Javascript
Three.js快速入门教程
2016/09/09 Javascript
微信小程序之电影影评小程序制作代码
2017/08/03 Javascript
javascript实现数字配对游戏的实例讲解
2017/12/14 Javascript
微信小程序实现下拉菜单切换效果
2020/03/30 Javascript
elementUi vue el-radio 监听选中变化的实例代码
2019/06/28 Javascript
微信小程序登录对接Django后端实现JWT方式验证登录详解
2019/07/29 Javascript
JS用最简单的方法实现四舍五入
2019/08/27 Javascript
[07:20]2014DOTA2西雅图国际邀请赛 选手讲解积分赛第二天
2014/07/11 DOTA
[00:57]林俊杰助阵DOTA2亚洲邀请赛
2015/01/28 DOTA
[04:40]DOTA2-DPC中国联赛1月26日Recap集锦
2021/03/11 DOTA
Python实现的多项式拟合功能示例【基于matplotlib】
2018/05/15 Python
pip命令无法使用的解决方法
2018/06/12 Python
基于Python List的赋值方法
2018/06/23 Python
Python脚本利用adb进行手机控制的方法
2019/07/08 Python
浅析PEP570新语法: 只接受位置参数
2019/10/15 Python
Python 列表中的修改、添加和删除元素的实现
2020/06/11 Python
scrapy-splash简单使用详解
2021/02/21 Python
新加坡航空官方网站:Singapore Airlines
2016/10/13 全球购物
Spanx塑身衣官网:美国知名内衣品牌
2017/01/11 全球购物
2016元旦晚会主持词
2015/07/01 职场文书
《西门豹》教学反思
2016/02/23 职场文书
诗词赏析-(浣溪沙)
2019/08/13 职场文书
进行数据处理的6个 Python 代码块分享
2022/04/06 Python
python​格式化字符串
2022/04/20 Python
springboot创建的web项目整合Quartz框架的项目实践
2022/06/21 Java/Android