Come rendere la riga di intestazione essere saltato nel mio ciclo durante l'utilizzo di fgetcsv?

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

  •  08-10-2019
  •  | 
  •  

Domanda

Non riesco a ottenere il nuovo codice che ho scritto per saltare la prima riga (intestazione) del codice stavo usando prima ha fatto (vedi fondo).

Non ricevo gli eventuali errori, ma proprio non riesco a farlo omettere prima fila.

$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);

Di seguito la vecchia fonte che saltato l'intestazione, come riferimento e confronto.

$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);
È stato utile?

Soluzione

Perché nemmeno contare? Basta avere le intestazioni prima di loop.

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

Inoltre, si sta assegnando solo il puntatore del file alla variabile.

Altri suggerimenti

Quando $row_count è 0 che non sono lettura qualsiasi riga.

Cambia

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

a

if ($row_count==0){
    $column_headers = fgetcsv($file); // read the row.
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top