【问题标题】:How to count length of csv file in when uploaded in php ?在 php 中上传时如何计算 csv 文件的长度?
【发布时间】:2018-11-08 20:42:36
【问题描述】:

代码:

<?php
    if(isset($_POST['upload']))
    {
        $filename = $_FILES['files']['name'];
        $path = "upload_enq/";
        $move = move_uploaded_file($_FILES['files']['tmp_name'],$path.$_FILES['files']['name']);
        $path_file = "upload_enq/".basename($_FILES['files']['name']);

        $c =0;
        $fileObj = fopen( $path_file, "rt" );
        if($fileObj){
            while(!feof($fileObj)){
                $content = fgets($fileObj);
                if($content)    
                $c++;
            }
        }
        fclose($fileObj);
        echo $c;
    }
?>
<form class="forms-sample" method="post" enctype="multipart/form-data">
    <input type="file" name="files" id="files" />
    <input type="submit" class="btn btn-success mr-2" name="upload" id="upload" value="Upload" />
</form>

在这段代码中,我创建了一个简单的表单,我在其中上传了 csv 文件,并且我想计算 csv 文件的长度。现在,当我上传具有 295 行但显示错误输出的 csv 文件时会发生什么,它计数为 926 行。那么,我该如何解决这个问题?请帮助我。

谢谢

【问题讨论】:

标签: php


【解决方案1】:

正如你所说,你需要csv文件的行数,所以使用file()

$fp = file( $path_file, FILE_SKIP_EMPTY_LINES);
echo count($fp);

所以现在代码会变短

<?php
    if(isset($_POST['upload']))
    {
        $filename = $_FILES['files']['name'];
        $path = "upload_enq/";
        $move = move_uploaded_file($_FILES['files']['tmp_name'],$path.$_FILES['files']['name']);
        $path_file = "upload_enq/".basename($_FILES['files']['name']);

        $fp = file( $path_file);
        echo count($fp);
    }
?>

我已经在本地测试过:-

https://prnt.sc/jody8e

https://prnt.sc/jodyjl

https://prnt.sc/jodyoz

【讨论】:

    【解决方案2】:

    根据我的 cmets 使用 Count 函数来获取 CSV 文件中的总行数,如下所示

    $fileObj= file('filename.csv');
    echo count($fileObj);
    

    更多详情请阅读PHP Manual

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-07
      • 2018-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-25
      相关资源
      最近更新 更多