fgetcsv()length参数详解

来源:1-29 csv格式操作

前端小白AAA

2018-07-26 20:58:10

http://img.mukewang.com/climg/5b59c54a00018f3808220269.jpg

写回答

1回答

好帮手慕查理

2018-07-27

您好,$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://img.mukewang.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 学习 · 2569 问题

查看课程