fgetcsv()length参数详解

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

您好,$length含义:必须大于 CSV 文件内最长的一行。在 PHP 5 中该参数是可选的。如果忽略(在 PHP 5.0.4 以后的版本中设为 0)该参数的话,那么长度就没有限制,不过可能会影响执行效率。

例如:

PHP代码:

<?php
 $filename = 'test.csv';
 $handle = fopen($filename,'rb+');
 $row = fgetcsv($handle,4);
 print_r($row);

test.csv文件

http://img1.sycdn.imooc.com//climg/5b5a7c130001d42102600078.jpg

当$length的值设为4的时候,只能取出Array ( [0] => 1 [1] => te )。因为限制了长度为4。(, 也代表一个字符,即取出的是文件中的4个字符1,te)

但如果是循环输出时,依旧设置长度(设置长度为6):

<?php
 $filename = 'test.csv';
 $handle = fopen($filename,'rb+');
while($row = fgetcsv($handle,6)){
  print_r($row);
}

可以发现数组每个都是长度为6(, 也代表一个字符)

因此length的长度必须是大于 CSV 文件内最长的一行。而此文件中最长的一行则是23个字符。但因为有换行。所以:

<?php
 $filename = 'test.csv';
 $handle = fopen($filename,'rb+');
while($row = fgetcsv($handle,25)){
  print_r($row);
}

这样才能完整的取出内容。

如果解决了您的问题,请采纳。祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师