Как сделать так, чтобы строка заголовка была пропущена в цикле while с помощью fgetcsv? - PullRequest
4 голосов
/ 10 декабря 2010

Я не могу получить новый код, который я написал, чтобы пропустить первую строку (заголовок), как это делал код, который я использовал ранее (см. Внизу).

Я не получаю никаких ошибок, но просто не могу заставить его пропустить первую строку.

$file = fopen($uploadcsv,"r");
$column_headers = array();
$row_count = 0;
while(!feof($file)) {   
  if ($row_count==0){
    $column_headers = $file;
  } else {
    print_r(fgetcsv($file));
  }
  ++$row_count;
  }

fclose($file);

Ниже приведен старый источник, который пропустил заголовок для справки и сравнения.

$handle = fopen($uploadcsv, 'r');
$column_headers = array();
$row_count = 0;
while (($data = fgetcsv($handle, 100000, ",")) !== FALSE) {
  if ($row_count==0){
    $column_headers = $data;
  } else {
    print_r($data);
  }
  ++$row_count;
}
fclose($handle);

Ответы [ 2 ]

9 голосов
/ 10 декабря 2010

Почему даже считать?Просто получите заголовки перед циклом.

$column_headers = fgetcsv($file);
while(!feof($file)) {
   ...

Кроме того, вы только назначаете указатель файла на переменную.

2 голосов
/ 10 декабря 2010

Когда $row_count равно 0, вы не читаете любую строку.

Измените

if ($row_count==0){
    $column_headers = $file;  // just assigning file handle.
}

на

if ($row_count==0){
    $column_headers = fgetcsv($file); // read the row.
}
...