Come rendere la riga di intestazione essere saltato nel mio ciclo durante l'utilizzo di fgetcsv?
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);
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