Hvordan analysere en CSV-fil ved hjelp av PHP

Hvordan Analysere En Csv Fil Ved Hjelp Av Php



CSV filer inneholder kommadelte verdier og er det populære, veletablerte datahåndteringsformatet som brukes til å lagre dataene i tabellform. Disse filene kan enkelt opprettes av MS Excel, OpenOffice og Google Sheets. Parsing av CSV fil leser filen linje for linje og skiller linjene i matriseverdier.

I denne veiledningen vil vi forklare hvordan du kan analysere en CSV fil ved hjelp av PHP.







Parse en CSV-fil ved hjelp av PHP

Den innebygde metoden for PHP som analyserer CSV-filen er fgetcsv() og den leser en linje fra CSV-filen og analyserer den til en matrise.



Syntaksen for å bruke fgetcsv() funksjonen i PHP er som følger:



fgetcsv ( «.csv» , lengde , ',' )

Denne funksjonen godtar tre parametere, navnet på filen, den valgfrie parameterlengden på den lengste linjen, og deretter en annen valgfri parameterfeltavgrensning. Standard feltavgrensningstegn er kommaet med doble anførselstegn som vedlegg.





Bruk fgetcsv()-funksjonen for å analysere en CSV-fil i PHP

Her er hvordan du kan bruke fgetcsv() funksjon for å analysere en CSV-fil i PHP:

Trinn 1 : Først åpner du en CSV-fil ved hjelp av fopen() funksjon. Her r-modus brukes til å åpne filen for lesing og $handle er håndtaket for å holde dataene fra filen:



$handle = fopen ( 'filnavn.csv' , 'r' ) ;

Steg 2 : Etter det kan du bruke en while-løkke til å analysere hver CSV rad separat, vil løkken fortsette til slutten av filen:

samtidig som ( ( $data = fgetcsv ( $handle , 1000 , ',' ) ) !== FALSK )

{

// Les data fra CSV-fil

}

Trinn 3 : Når filen er lest, må du lukke den ved å bruke fclose()-funksjonen ved å sende handle som eneste argument.

flukk ( $handle ) ;

Her er en komplett kode i PHP som følger trinnene ovenfor og lar deg åpne CSV-filen i skrivebeskyttet modus, hvis filen blir funnet, ellers vil den returnere falsk :



$handle = fopen ( 'data.csv' , 'r' ) ;

samtidig som ( ( $rad = fgetcsv ( $handle ) ) !== falsk ) {

var_dump ( $rad ) ;

}

flukk ( $handle ) ;

?>

Koden ovenfor åpner først filen 'data.csv' i lesemodus ved å bruke fopen()-funksjonen og tilordner filhåndtaket til variabelen $handle. Etter det leser den hver linje i filen ved å bruke en while-løkke og fgetcsv()-funksjonen. Koden bruker !== falsk sammenligning for å sikre lesing til slutten av filen er nådd.

Produksjon

Konverter CSV-fil til Multi-Dimensjonal Array i PHP

Du kan også analysere en CSV fil ved å konvertere den til en flerdimensjonal matrise slik at dataene lett kan leses inne i filen. Følgende kode vil hjelpe deg å trekke ut dataene fra CSV-filen på en mer organisert måte.



$filnavn = 'data.csv' ;

$nested_array = [ ] ;

hvis ( ( $handle = fopen ( ' {$filename} ' , 'r' ) ) !== FALSK )

{

samtidig som ( ( $data = fgetcsv ( $handle , 1000 , ',' ) ) !== FALSK )
{
$nested_array [ ] = $data ;
}
flukk ( $handle ) ;


}

ekko «» ;

var_dump ( $nested_array ) ;

ekko «» ;

For å lage data i lesbart format, bruker koden ovenfor funksjonen kalt var_dump() som formaterer og sender ut dataene på en strukturert måte i en HTML-pre-tag.

Produksjon

Her er en annen måte å åpne CSV fil i PHP på en mer tilpasset måte. Den nedenfor gitte koden vil vise dataene for hver rad. Først åpnet vi filen ved å bruke fopen() funksjon . Bruk deretter håndtaket til å plassere hver rad av filen i den, og brukte while-løkken til å lese hele CSV fil til pekeren når slutten av filen. På slutten lukker vi filen:



$rad = 1 ;

hvis ( ( $handle = fopen ( 'data.csv' , 'r' ) ) !== FALSK ) {

samtidig som ( ( $data = fgetcsv ( $handle , 1000 , ',' ) ) !== FALSK ) {

$tall = telle ( $data ) ;

ekko '

$tall felt på linje $rad :

\n '
;

$rad ++;

til ( $c = 0 ; $c < $tall ; $c ++ ) {

ekko $data [ $c ] . '
\n '
;

}

}

flukk ( $handle ) ;

}

?>

Produksjon

Bunnlinjen

I PHP , kan vi åpne filen ved å bruke fopen() funksjon, les filen linje for linje ved å bruke fgetcsv() funksjonen, og lukk filen ved å bruke fclose() funksjon. Denne prosessen kan gjentas for hver linje i CSV fil, slik at du enkelt kan lese og manipulere tabelldata i PHP.