PHP -上传CSV文件&打印特定的行


PHP - Upload a CSV file & print specific rows

我正在做一个web项目,在这个项目中,用户应该能够将Asana项目导出并导入生成的。csv文件,以便打印特定的行。

我实际上可以导入文件:

if ( isset($_POST["submit"]) ) {
   if ( isset($_FILES["file"])) {
        //error while uploading the file
        if ($_FILES["file"]["error"] > 0) {
            echo "Error: " . $_FILES["file"]["error"] . "<br />";
        }
        else {
           //error message if file already exists
            if (file_exists("upload/" . $_FILES["file"]["name"])) {
            echo $_FILES["file"]["name"] . " already exists. ";
             }
            else {
            //Uploads file in the upload/ folder
            $storagename = "uploaded_file.txt";
            move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $storagename);
            echo "<strong>Stored in:</strong> " . "upload/" . $_FILES["file"]["name"] . "<br />";
            }
         }
      } else {
             echo "No file selected <br />";
     }
}

,然后转储数据:

$row = 1;
if (($handle = fopen("upload/" . $storagename, "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        echo "<p> $num champs à la ligne $row: <br /></p>'n";
        $row++;
        for ($c=0; $c < $num; $c++) {
            echo $data[$c] . "<br />'n";
        }
    }
    fclose($handle);
}

所以,为了打印一些特定的行,我想到了这个,这将从11,12,13 &14行:

$kilometrage = $data[11];
$stationnement = $data[12];
$perdiem = $data[13];
$depenses = $data[14];

但遗憾的是,我没能弄明白。

有人有线索/想法/提示吗?任何帮助都将不胜感激。谢谢你!

实际上,我通过循环、设置和回显变量来解决这个问题。我仍然不知道这是不是最好的方法,但它确实有效:

$row = 1;
if (($handle = fopen("upload/" . $storagename, "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        $row++;
$kilometrage = $data[11];
$stationnement = $data[12];
$perdiem = $data[13];
$depenses = $data[14];
        for ($c=0; $c < 1; $c++) {
            echo "<table style='min-width:1000px;'><tbody><tr>";
            echo "<td style='width:25%'>" . $kilometrage . "</td>";
            echo "<td style='width:25%'>" . $stationnement . "</td>";
            echo "<td style='width:25%'>" . $perdiem . "</td>";
            echo "<td style='width:25%'>" . $depenses . "</td>";
            echo "</tr></tbody></table>";
        }
    }
    fclose($handle);
}