编程语言
首页 > 编程语言> > php – 如何使用fgetcsv省略空白行

php – 如何使用fgetcsv省略空白行

作者:互联网

我一直在努力将csv文件导入mysql数据库.问题是我的客户端已经获得了一些格式错误的文件.行以43结尾但文件下降到65078 !!

导入时,脚本需要永久.我该怎么做才能确保只导入0到44之间的行?这是我正在使用的代码.

  <table>
<?php
//fgetcsv($handle, 1024, delimiter)
$file = fopen("prices.csv", "r");
$row = 0;

    while($csv_line = fgetcsv($file,1024)) {

      if($row ==    4){
        echo "How many headers do we have: ".count($csv_line)."<tr>";

         foreach($csv_line as $header){

           if($header !== NULL){
            print "<td>$header</td>";
           }
         }
         echo "</tr>";
      } 

      if($row > 6) {

        echo '<tr>';

        for ($i = 0, $j = count($csv_line); $i < $j; $i++) {

          echo '<td>'.$csv_line[$i].'</td>';

        }

        echo "</tr>\n";

      } else {

        $row++;

      }

    } 
?>

</table>

解决方法:

如果填充的行数没有修复,您可以使用类似的方法:

if (empty($line)) { break; }

您的评论给了我一个更好的解决方案的想法:

这里http://php.net/manual/en/function.fgetcsv.php出现这个“CSV文件中的空白行将作为包含单个空字段的数组返回”,所以这可能有助于:

while(($csv_line = fgetcsv($file,1024))&& $csv_line [0]){

将只读取,直到找到一个空行.

标签:php,fgetcsv
来源: https://codeday.me/bug/20190626/1294658.html