PHP 动态创建 CSV:跳过 CSV 文件的第一行

2022-08-30 13:46:52

我正在尝试导入 CSV 文件。由于我们使用的程序,第一行基本上是我想跳过的所有标题,因为我已经通过HTML放入了自己的标题。如何获取代码以跳过 CSV 的第一行?(strpos 命令用于切断所有行中的第一个字段。

<?php
$row = 1;
if (($handle = fopen("ptt.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
    $num = count($data);
           $row++;
    for ($c=0; $c < $num; $c++) {
    if(strpos($data[$c], 'Finished') !== false) {
    $c++;
echo "<TR> <TD nowrap>" . $data[$c] . "</ TD>"; }
    Else{
        echo "<TD nowrap>" .  $data[$c] . "</ TD>";
        }
    }
}
fclose($handle);
}
?>

答案 1

与其使用 if 条件来检查它是否是第一行,更好的解决方案是在 while 循环开始的行之前添加一行额外的代码,如下所示:

....
.....
fgetcsv($handle);//Adding this line will skip the reading of th first line from the csv file and the reading process will begin from the second line onwards
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
.......
.......

就这么简单...


答案 2

由于您无论如何都要跟踪行号,因此可以使用跳过第一行的循环的其余部分。continue

例如,在 while 循环的开头添加此内容(就在上面):$num = count($data)

if($row == 1){ $row++; continue; }

还有其他方法可以做到这一点,但只要确保当你继续时,仍然在增加,否则你会得到一个无限循环!$row


推荐