2009-12-10 2 views
0

Я смущен тем, как читать файл csv в php (только первые 4 поля) и исключать оставшиеся файлы.чтение первых 5 полей файла csv в php

Sno,Name,Ph,Add,PO 
1,Bob,0102,Suit22,89 
2,Pop,2343,Room2,78 

Я просто хочу прочитать первые 3 заявки и перейти к следующим данным. не могу понять, как это сделать через fgetcsv

любая помощь?

Спасибо,

ответ

2

Я добавил комментарий к коду 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); 
} 
+0

большое спасибо. – JPro

+0

, если мне нужно вставить эти данные в mysql, можете ли вы сказать мне, где вставить инструкцию? – JPro

1

Вот способ сделать это без 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]; 
} 
+0

Да, но это Предположим, что файл правильный (нет строк с менее чем 4 полями). Я знаю, что ошибка уровня уведомления не так важна, но в любом случае. Особенно, когда вы отлаживаете, лучше избавиться от уведомлений. Я предлагаю добавить if (count ($ fields) <4) // Error handle // для строки –

+1

Я просто показывал концепцию. Нет необходимости свертывать демонстрацию с рутинной герметизацией. Он попросил четыре поля, поэтому я дал ему четыре поля. – brianreavis

Смежные вопросы