Sådan parses en CSV-fil ved hjælp af PHP

Sadan Parses En Csv Fil Ved Hjaelp Af Php



CSV filer indeholder kommaseparerede værdier og er det populære, veletablerede datahåndteringsformat, der bruges til at gemme dataene i tabelform. Disse filer kan nemt oprettes af MS Excel, OpenOffice og Google Sheets. Parsing af CSV fil læser filen linje for linje og adskiller linjerne i matrixværdier.

I denne guide vil vi forklare, hvordan du kan parse en CSV fil ved hjælp af PHP.







Parse en CSV-fil ved hjælp af PHP

Den indbyggede PHP-metode, der analyserer CSV-filen, er fgetcsv() og den læser en linje fra CSV-filen og analyserer den til et array.



Syntaksen ved at bruge fgetcsv() funktion i PHP er som følger:



fgetcsv ( '.csv' , længde , ',' )

Denne funktion accepterer tre parametre, navnet på filen, den valgfri parameterlængde på den længste linje og derefter en anden valgfri parameterfeltafgrænser. Standardfeltafgrænseren er kommaet med de dobbelte anførselstegn som indeslutning.





Brug fgetcsv()-funktionen til at parse en CSV-fil i PHP

Her er hvordan du kan bruge fgetcsv() funktion til at parse en CSV-fil i PHP:

Trin 1 : Åbn først en CSV-fil ved hjælp af fopen() fungere. Her r tilstand bruges til at åbne filen til læsning og $håndtag er håndtaget til at holde dataene fra filen:



$håndtag = fopen ( 'filnavn.csv' , 'r' ) ;

Trin 2 : Derefter kan du bruge en while-løkke til at parse hver CSV række separat, vil løkken fortsætte indtil slutningen af ​​filen:

mens ( ( $data = fgetcsv ( $håndtag , 1000 , ',' ) ) !== FALSK )

{

// Læs data fra CSV-fil

}

Trin 3 : Når filen er læst, skal du lukke den ved at bruge funktionen fclose() ved at sende handle som det eneste argument.

fluk ( $håndtag ) ;

Her er en komplet kode i PHP, der følger ovenstående trin og giver dig mulighed for at åbne CSV-filen i skrivebeskyttet tilstand, hvis filen findes, ellers vender den tilbage falsk :



$håndtag = fopen ( 'data.csv' , 'r' ) ;

mens ( ( $række = fgetcsv ( $håndtag ) ) !== falsk ) {

var_dump ( $række ) ;

}

fluk ( $håndtag ) ;

?>

Ovenstående kode åbner først filen 'data.csv' i læsetilstand ved hjælp af fopen()-funktionen og tildeler filhåndtaget til variablen $handle. Derefter læser den hver linje i filen ved hjælp af en while-løkke og fgetcsv()-funktionen. Koden bruger !== falsk sammenligning for at sikre læsning indtil slutningen af ​​filen er nået.

Produktion

Konverter CSV-fil til Multi-Dimensional Array i PHP

Du kan også parse en CSV fil ved at konvertere den til et multidimensionelt array, så dataene let kan læses inde i filen. Følgende kode hjælper dig med at udtrække dataene fra CSV-filen på en mere organiseret måde.



$filnavn = 'data.csv' ;

$nested_array = [ ] ;

hvis ( ( $håndtag = fopen ( ' {$filnavn} ' , 'r' ) ) !== FALSK )

{

mens ( ( $data = fgetcsv ( $håndtag , 1000 , ',' ) ) !== FALSK )
{
$nested_array [ ] = $data ;
}
fluk ( $håndtag ) ;


}

ekko '' ;

var_dump ( $nested_array ) ;

ekko '' ;

For at gøre data i læsbart format bruger ovenstående kode den kaldede funktion var_dump() der formaterer og udlæser dataene på en struktureret måde inden for en HTML pre-tag.

Produktion

Her er en anden måde at åbne CSV fil i PHP på en mere tilpasset måde. Nedenstående kode viser dataene for hver række. Først åbnede vi filen ved hjælp af fopen() funktion . Brug derefter håndtaget til at placere hver række af filen i den, og brugte while-løkken til at læse hele filen CSV fil, indtil markøren når slutningen af ​​filen. Til sidst lukker vi filen:



$række = 1 ;

hvis ( ( $håndtag = fopen ( 'data.csv' , 'r' ) ) !== FALSK ) {

mens ( ( $data = fgetcsv ( $håndtag , 1000 , ',' ) ) !== FALSK ) {

$numre = tælle ( $data ) ;

ekko '

$numre felter på linje $række :

\n '
;

$række ++;

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

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

}

}

fluk ( $håndtag ) ;

}

?>

Produktion

Bundlinie

I PHP , kan vi åbne filen ved hjælp af fopen() funktion, læs filen linje for linje ved hjælp af fgetcsv() funktionen, og luk filen ved hjælp af fclose() fungere. Denne proces kan gentages for hver linje i CSV fil, så du nemt kan læse og manipulere tabeldata i PHP.