Funzione fgetcsv() PHP

Definizione e utilizzo

La funzione fgetcsv() legge una riga dal puntatore di file e analizza i campi CSV.

Con fgets() Simile, ma diverso. fgetcsv() analizza la riga letta e individua i campi in formato CSV, restituendo un array contenente questi campi.

fgetcsv() restituisce FALSE in caso di errore, inclusi i casi in cui si raggiunge la fine del file.

Commento:Dalla versione PHP 4.3.5, l'operazione di fgetcsv() è sicura in binario.

Sintassi

fgetcsv(file,length,separator,enclosure)
Parametro Descrizione
file Obbligatorio. Determina il file da controllare.
length

Opzionale. Determina la lunghezza massima della riga. Deve essere maggiore della riga più lunga nel file CVS.

Nel PHP 5 il parametro è opzionale. Prima del PHP 5 è obbligatorio.

Se si ignora (impostato a 0 nelle versioni successive al PHP 5.0.4), la lunghezza non è limitata, ma potrebbe influenzare l'efficienza di esecuzione.

separator Opzionale. Imposta il carattere di delimitazione dei campi (permesso solo un carattere), il valore predefinito è la virgola.
enclosure

Opzionale. Imposta i caratteri di delimitazione dei campi (permesso solo un carattere), il valore predefinito è il virgoletta doppi.

Il parametro è stato aggiunto in PHP 4.3.0.

Suggerimenti e commenti

Commento:Le righe vuote nel file CSV vengono restituite come array contenente un singolo campo null, non vengono considerate come errori.

Commento:La funzione è sensibile alla configurazione della regione. Ad esempio, se LANG è impostato su en_US.UTF-8, i file con codifica a singolo byte possono causare errori di lettura.

Commento:Se PHP non riconosce il segno di fine della riga dei file Macintosh durante la lettura del file, è possibile attivare l'opzione di configurazione runtime auto_detect_line_endings.

Esempio

Esempio 1

<?php
$file = fopen("contacts.csv","r");
print_r(fgetcsv($file));
fclose($file);
?>

File CSV:

George, John, Thomas, USA
James, Adrew, Martin, USA

Output simile a:

Array 
( 
[0] => George
[1] => John 
[2] => Thomas
[3] => USA
)

Esempio 2

<?php
$file = fopen("contacts.csv","r");
while(! feof($file))
  {
  print_r(fgetcsv($file));
  }
fclose($file);
?>

File CSV:

George, John, Thomas, USA
James, Adrew, Martin, USA

Output simile a:

Array 
( 
[0] => George
[1] => John 
[2] => Thomas
[3] => USA
Array
(
[0] => James
[1] => Adrew
[2] => Martin
[3] => USA
)