fgetcsv()函数的可选参数length的作用是什么?

fgetcsv()函数的可选参数length的作用是什么?

fgetcsv()函数的可选参数length的作用是什么?

正在回答

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

2回答

您好,如下:$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/5c32ae0d00017e4902520072.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);
}

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

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

  • Airpeng 提问者 #1
    此文件中最长的一行则是23个字符,再加上一个换行符,就是24个字符,那把length设置成24不是可以把全部内容取出来吗?为什么是设置成25?
    2019-01-07 11:24:58
  • 好帮手慕查理 回复 提问者 Airpeng #2
    您好,注意:$length含义:必须大于 CSV 文件内最长的一行。祝学习愉快!
    2019-01-07 11:29:39
好帮手慕查理 2019-01-06 10:52:49

您好,请参考:http://class.imooc.com/course/qadetail/61364 祝学习愉快!

  • 提问者 Airpeng #1
    老师你好,我没有购买该课程,看不到回答
    2019-01-06 11:14:03
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
PHP小白零基础入门
  • 参与学习           人
  • 提交作业       626    份
  • 解答问题       4928    个

想要学好Web后端开发的中流砥柱语言,本阶段为你轻松铺就扎实的基础,从前端网页布局的搭建到后台PHP开发,助你从零基础到掌握主流开发语言。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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