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面向对象的方法重载两种版本比较
Sep 08 PHP
zend api扩展的php对象的autoload工具
Apr 18 PHP
使ecshop模板中可引用常量的实现方法
Jun 02 PHP
一个PHP缓存类代码(附详细说明)
Jun 09 PHP
php操作mysqli(示例代码)
Oct 28 PHP
destoon安全设置中需要设置可写权限的目录及文件
Jun 21 PHP
Laravel框架中扩展函数、扩展自定义类的方法
Sep 04 PHP
微信公众平台开发实现2048游戏的方法
Apr 15 PHP
PHP函数nl2br()与自定义函数nl2p()换行用法分析
Apr 02 PHP
php截取视频指定帧为图片
May 16 PHP
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
Dec 14 PHP
php根据命令行参数生成配置文件详解
Mar 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 fopen 读取带中文URL地址的一点见解
2012/09/25 PHP
php+html5基于websocket实现聊天室的方法
2015/07/17 PHP
Smarty模板引擎缓存机制详解
2016/05/23 PHP
PHP 实现base64编码文件上传出现问题详解
2020/09/01 PHP
js实现ctrl+v粘贴上传图片(兼容chrome、firefox、ie11)
2016/03/09 Javascript
详解JavaScript表单验证(E-mail 验证)
2016/03/31 Javascript
jQuery基于排序功能实现上移、下移的方法
2016/11/26 Javascript
网页中的图片查看器viewjs使用方法
2017/07/11 Javascript
Vue学习笔记进阶篇之vue-cli安装及介绍
2017/07/18 Javascript
解决canvas画布使用fillRect()时高度出现双倍效果的问题
2017/08/03 Javascript
mescroll.js上拉加载下拉刷新组件使用详解
2017/11/13 Javascript
微信小程序中实现手指缩放图片的示例代码
2018/03/13 Javascript
JavaScript代码调试方法实例小结
2019/01/05 Javascript
详解如何在vue项目中使用layui框架及采坑
2019/05/05 Javascript
一篇文章看懂JavaScript中的回调
2021/01/05 Javascript
[10:14]2018DOTA2国际邀请赛寻真——paiN Gaming不仅为自己而战
2018/08/14 DOTA
python中as用法实例分析
2015/04/30 Python
python列表的常用操作方法小结
2016/05/21 Python
Python切片索引用法示例
2018/05/15 Python
Python输出\u编码将其转换成中文的实例
2018/12/15 Python
Python基于scipy实现信号滤波功能
2019/05/08 Python
Python实现基于socket的udp传输与接收功能详解
2019/11/15 Python
Pytorch实现LSTM和GRU示例
2020/01/14 Python
Python之Django自动实现html代码(下拉框,数据选择)
2020/03/13 Python
Django web自定义通用权限控制实现方法
2020/11/24 Python
Python实现FTP文件定时自动下载的步骤
2020/12/19 Python
html5中audio支持音频格式的解决方法
2018/08/24 HTML / CSS
德国最大的网上鞋店之一:Schuhe24.de
2017/06/10 全球购物
阿迪达斯德国官方网站:adidas德国
2017/07/12 全球购物
菲律宾领先的在线时尚商店:Zalora菲律宾
2018/02/08 全球购物
六个一活动实施方案
2014/03/21 职场文书
篮球比赛拉拉队口号
2014/06/10 职场文书
作文批改评语
2014/12/25 职场文书
初中班主任教育随笔
2015/08/15 职场文书
JS 4个超级实用的小技巧 提升开发效率
2021/10/05 Javascript
vue 给数组添加新对象并赋值
2022/04/20 Vue.js