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 )