在php中读取csv文件的前5个字段

在php中读取csv文件的前5个字段,php,Php,我对如何在php中读取csv文件(仅前4个字段)并排除其余文件感到困惑 Sno,Name,Ph,Add,PO 1,Bob,0102,Suit22,89 2,Pop,2343,Room2,78 我只想读取前3个文件并跳转到下一个数据。无法了解如何通过fgetcsv执行此操作 有什么帮助吗 谢谢,这里有一种不使用fgetcsv功能的方法: $lines = file('data.csv'); $linecount = count($lines); for ($i = 1; $i < $lin

我对如何在php中读取csv文件(仅前4个字段)并排除其余文件感到困惑

Sno,Name,Ph,Add,PO
1,Bob,0102,Suit22,89
2,Pop,2343,Room2,78
我只想读取前3个文件并跳转到下一个数据。无法了解如何通过fgetcsv执行此操作

有什么帮助吗


谢谢,

这里有一种不使用
fgetcsv
功能的方法:

$lines = file('data.csv');
$linecount = count($lines);
for ($i = 1; $i < $linecount; $i++){
   $fields = explode(',', $lines[$i]);
   $sno  = $fields[0];
   $name = $fields[1];
   $ph   = $fields[2];
   $add  = $fields[3];
}
$lines=file('data.csv');
$linecount=计数($lines);
对于($i=1;$i<$linecount;$i++){
$fields=分解(“,”,$lines[$i]);
$sno=$fields[0];
$name=$fields[1];
$ph=$fields[2];
$add=$fields[3];
}

这里有一种不用
fgetcsv
功能的方法:

$lines = file('data.csv');
$linecount = count($lines);
for ($i = 1; $i < $linecount; $i++){
   $fields = explode(',', $lines[$i]);
   $sno  = $fields[0];
   $name = $fields[1];
   $ph   = $fields[2];
   $add  = $fields[3];
}
$lines=file('data.csv');
$linecount=计数($lines);
对于($i=1;$i<$linecount;$i++){
$fields=分解(“,”,$lines[$i]);
$sno=$fields[0];
$name=$fields[1];
$ph=$fields[2];
$add=$fields[3];
}

我为您的示例fgetcsv代码添加了一条注释:

$row = 1;
if (($handle = fopen("test.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        echo "<p> $num fields in line $row: <br /></p>\n";
        // iterate over each column here
        for ($c=0; $c < $num; $c++) {
            // handle column data here
            echo $data[$c] . "<br />\n";
            // exit the loop after 3rd column parsed
            if ($c == 2) break;
        }
        ++$row;
    }
    fclose($handle);
}
$row=1;
if($handle=fopen(“test.csv”、“r”)!==FALSE){
while(($data=fgetcsv($handle,1000,“,”)!==FALSE){
$num=计数($data);
echo“$num字段位于第$row行:

\n”; //在这里迭代每一列 对于($c=0;$c<$num;$c++){ //在这里处理列数据 echo$data[$c]。“
\n”; //解析第3列后退出循环 如果($c==2)中断; } ++$row; } fclose($handle); }
我为您的示例fgetcsv代码添加了一条注释:

$row = 1;
if (($handle = fopen("test.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        echo "<p> $num fields in line $row: <br /></p>\n";
        // iterate over each column here
        for ($c=0; $c < $num; $c++) {
            // handle column data here
            echo $data[$c] . "<br />\n";
            // exit the loop after 3rd column parsed
            if ($c == 2) break;
        }
        ++$row;
    }
    fclose($handle);
}
$row=1;
if($handle=fopen(“test.csv”、“r”)!==FALSE){
while(($data=fgetcsv($handle,1000,“,”)!==FALSE){
$num=计数($data);
echo“$num字段位于第$row行:

\n”; //在这里迭代每一列 对于($c=0;$c<$num;$c++){ //在这里处理列数据 echo$data[$c]。“
\n”; //解析第3列后退出循环 如果($c==2)中断; } ++$row; } fclose($handle); }
是的,但这假设文件是正确的(没有少于4个字段的行)。我知道通知级别错误并不重要,但无论如何。特别是在调试时,最好去掉通知。我建议为rowI添加if(count($fields)<4)//错误句柄//我只是展示了这个概念。没有必要把一个演示和一些基本的防弹材料混为一谈。他要四个字段,所以我给了他四个字段。是的,但这假设文件是正确的(没有少于4个字段的行)。我知道通知级别错误并不重要,但无论如何。特别是在调试时,最好去掉通知。我建议为rowI添加if(count($fields)<4)//错误句柄//我只是展示了这个概念。没有必要把一个演示和一些基本的防弹材料混为一谈。他要四个字段,所以我给了他四个字段。如果我需要将这些数据插入mysql,你能告诉我在哪里插入语句吗?如果我需要将这些数据插入mysql,你能告诉我在哪里插入语句吗?