Hoe een CSV-bestand te parseren met behulp van PHP

Hoe Een Csv Bestand Te Parseren Met Behulp Van Php



CSV bestanden bevatten door komma's gescheiden waarden en zijn het populaire, gevestigde formaat voor gegevensverwerking dat wordt gebruikt om de gegevens in tabelvorm op te slaan. Deze bestanden kunnen eenvoudig worden gemaakt met MS Excel, OpenOffice en Google Spreadsheets. Het ontleden van de CSV bestand leest het bestand regel voor regel en scheidt de regels in arraywaarden.

In deze handleiding leggen we uit hoe u een CSV bestand met behulp van PHP.







Parseer een CSV-bestand met behulp van PHP

De ingebouwde methode van PHP die het CSV-bestand parseert is fgetcsv() en het leest een regel uit het CSV-bestand en ontleedt het in een array.



De syntaxis van het gebruik van de fgetcsv() functie in PHP is als volgt:



fgetcsv ( ' .csv' , lengte , ',' )

Deze functie accepteert drie parameters, de naam van het bestand, de optionele parameterlengte van de langste regel en vervolgens nog een optionele parameterveldbegrenzer. Het standaard scheidingsteken voor velden is de komma met de dubbele aanhalingstekens als bijlage.





Gebruik de functie fgetcsv() om een ​​CSV-bestand in PHP te ontleden

Hier ziet u hoe u de fgetcsv() functie om een ​​CSV-bestand in PHP te ontleden:

Stap 1 : Open eerst een CSV-bestand met behulp van de fopen() functie. Hier r-modus wordt gebruikt om het bestand te openen voor lezen en $handvat is het handvat om de gegevens uit het bestand vast te houden:



$handvat = fopen ( 'bestandsnaam.csv' , 'R' ) ;

Stap 2 : Daarna kunt u een while-lus gebruiken om elk te ontleden CSV rij afzonderlijk, de lus gaat door tot het einde van het bestand:

terwijl ( ( $ gegevens = fgetcsv ( $handvat , 1000 , ',' ) ) !== ONWAAR )

{

// Lees gegevens van CSV-bestand

}

Stap 3 : Zodra het bestand is gelezen, moet u het sluiten met de functie fclose() door handle als het enige argument door te geven.

fsluiten ( $handvat ) ;

Hier is een volledige code in PHP die de bovenstaande stappen volgt en waarmee u het CSV-bestand in alleen-lezen modus kunt openen, als het bestand wordt gevonden, anders zal het terugkeren vals :



$handvat = fopen ( 'gegevens.csv' , 'R' ) ;

terwijl ( ( $rij = fgetcsv ( $handvat ) ) !== vals ) {

var_dump ( $rij ) ;

}

fsluiten ( $handvat ) ;

?>

De bovenstaande code opent eerst het bestand 'data.csv' in leesmodus met behulp van de functie fopen() en wijst de bestandshandle toe aan de variabele $handle. Daarna leest het elke regel van het bestand met behulp van een while-lus en de functie fgetcsv(). De code gebruikt de !== false-vergelijking om ervoor te zorgen dat het bestand wordt gelezen totdat het einde is bereikt.

Uitgang

Converteer CSV-bestand naar multidimensionale array in PHP

U kunt ook een CSV bestand door het om te zetten in een multidimensionale array, zodat de gegevens gemakkelijk in het bestand kunnen worden gelezen. Met de volgende code kunt u de gegevens op een meer georganiseerde manier uit het CSV-bestand extraheren.



$bestandsnaam = 'data.csv' ;

$ geneste_array = [ ] ;

als ( ( $handvat = fopen ( ' {$bestandsnaam} ' , 'R' ) ) !== ONWAAR )

{

terwijl ( ( $ gegevens = fgetcsv ( $handvat , 1000 , ',' ) ) !== ONWAAR )
{
$ geneste_array [ ] = $ gegevens ;
}
fsluiten ( $handvat ) ;


}

echo '' ;

var_dump ( $ geneste_array ) ;

echo '' ;

Om gegevens in leesbaar formaat te maken, gebruikt de bovenstaande code de functie genaamd var_dump() die de gegevens op een gestructureerde manier formatteert en uitvoert binnen een HTML pre-tag.

Uitgang

Hier is een andere manier om de CSV bestand in PHP op een meer aangepaste manier. De onderstaande code geeft de gegevens van elke rij weer. Eerst hebben we het bestand geopend met behulp van de fopen() functie . Gebruik vervolgens de handle om elke rij van het bestand erin te plaatsen en gebruik de while-lus om het geheel te lezen CSV bestand totdat de aanwijzer het einde van het bestand bereikt. Aan het einde sluiten we het bestand:



$rij = 1 ;

als ( ( $handvat = fopen ( 'gegevens.csv' , 'R' ) ) !== ONWAAR ) {

terwijl ( ( $ gegevens = fgetcsv ( $handvat , 1000 , ',' ) ) !== ONWAAR ) {

$ nummers = graaf ( $ gegevens ) ;

echo '

$ nummers velden op een rij $rij :

\N '
;

$rij ++;

voor ( $ c = 0 ; $ c < $ nummers ; $ c ++ ) {

echo $ gegevens [ $ c ] . '
\N '
;

}

}

fsluiten ( $handvat ) ;

}

?>

Uitgang

Het komt erop neer

In PHP , kunnen we het bestand openen met de fopen() functie, lees het bestand regel voor regel met behulp van de fgetcsv() functie en sluit het bestand met de fsluiten() functie. Dit proces kan worden herhaald voor elke regel in het CSV bestand, zodat u eenvoudig tabelgegevens in PHP kunt lezen en manipuleren.