Как заставить строку заголовка быть пропущена в моем раке, используя fgetcsv?

StackOverflow https://stackoverflow.com/questions/4409911

  •  08-10-2019
  •  | 
  •  

Вопрос

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

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

$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);
Это было полезно?

Решение

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

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

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

Другие советы

Когда $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.
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top