Paano Mag-parse ng CSV File Gamit ang PHP

Paano Mag Parse Ng Csv File Gamit Ang Php



CSV Ang mga file ay naglalaman ng mga halagang pinaghihiwalay ng kuwit at ang sikat, mahusay na itinatag na format ng pangangasiwa ng data na ginagamit upang iimbak ang data sa anyong tabular. Ang mga file na ito ay madaling magawa ng MS Excel, OpenOffice, at Google Sheets. Pag-parse ng CSV Binabasa ng file ang linya ng file sa pamamagitan ng linya at pinaghihiwalay ang mga linya sa mga halaga ng array.

Sa gabay na ito, ipapaliwanag namin kung paano mo mai-parse ang a CSV file gamit ang PHP.







I-parse ang isang CSV File Gamit ang PHP

Ang built-in na paraan ng PHP na nag-parse ng CSV file ay fgetcsv() at nagbabasa ito ng isang linya mula sa CSV file at na-parse ito sa isang array.



Ang syntax ng paggamit ng fgetcsv() function sa PHP ay ang mga sumusunod:



fgetcsv ( '.csv' , haba , ',' )

Tumatanggap ang function na ito tatlong parameter, ang pangalan ng file, ang opsyonal na haba ng parameter ng pinakamahabang linya, at pagkatapos ay isa pang opsyonal na parameter field delimiter. Ang default na field delimiter ay ang kuwit na may double quotes bilang enclosure.





Gumamit ng fgetcsv() Function para i-parse ang isang CSV File sa PHP

Narito kung paano mo magagamit ang fgetcsv() function upang i-parse ang isang CSV file sa PHP:

Hakbang 1 : Una, magbukas ng CSV file gamit ang fopen() function. Dito r mode ay ginagamit upang buksan ang file para sa pagbabasa at $hawakan ay ang hawakan upang hawakan ang data mula sa file:



$hawakan = fopen ( 'filename.csv' , 'r' ) ;

Hakbang 2 : Pagkatapos nito, maaari kang gumamit ng while loop para i-parse ang bawat isa CSV hiwalay na hilera, magpapatuloy ang loop hanggang sa katapusan ng file:

habang ( ( $data = fgetcsv ( $hawakan , 1000 , ',' ) ) !== MALI )

{

// Basahin ang data ng CSV file

}

Hakbang 3 : Kapag nabasa na ang file, kailangan mong isara ito gamit ang fclose() function sa pamamagitan ng pagpasa ng handle bilang ang tanging argumento.

fclose ( $hawakan ) ;

Narito ang isang kumpletong code sa PHP na sumusunod sa mga hakbang sa itaas at nagbibigay-daan sa iyong buksan ang CSV file sa read-only mode, kung ang file ay natagpuan, kung hindi man ay babalik ito mali :



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

habang ( ( $row = fgetcsv ( $hawakan ) ) !== mali ) {

var_dump ( $row ) ;

}

fclose ( $hawakan ) ;

?>

Unang binubuksan ng code sa itaas ang file na 'data.csv' sa read mode gamit ang fopen() function at itinatalaga ang file handle sa variable na $handle. Pagkatapos nito, binabasa nito ang bawat linya ng file gamit ang isang while loop at ang fgetcsv() function. Ang code ay gumagamit ng !== maling paghahambing upang matiyak ang pagbabasa hanggang sa dulo ng file ay maabot.

Output

I-convert ang CSV File sa Multi-Dimensional Array sa PHP

Maaari mo ring i-parse ang a CSV file sa pamamagitan ng pag-convert nito sa isang multidimensional array upang ang data ay madaling mabasa sa loob ng file. Tutulungan ka ng sumusunod na code na i-extract ang data mula sa CSV file sa mas organisadong paraan.



$filename = 'data.csv' ;

$nested_array = [ ] ;

kung ( ( $hawakan = fopen ( ' {$filename} ' , 'r' ) ) !== MALI )

{

habang ( ( $data = fgetcsv ( $hawakan , 1000 , ',' ) ) !== MALI )
{
$nested_array [ ] = $data ;
}
fclose ( $hawakan ) ;


}

echo '
'  ; 

var_dump ( $nested_array ) ;

echo '
'
;

Upang gumawa ng data sa nababasang format, ginagamit ng code sa itaas ang function na tinatawag var_dump() na nag-format at naglalabas ng data sa isang structured na paraan sa loob ng HTML pre tag.

Output

Narito ang isa pang paraan upang buksan ang CSV file sa PHP sa mas customized na paraan. Ipapakita ng ibinigay na code sa ibaba ang data ng bawat row. Una, binuksan namin ang file gamit ang fopen() function . Pagkatapos ay gamitin ang hawakan upang ilagay ang bawat hilera ng file dito, at ginamit ang while loop upang basahin ang kabuuan CSV file hanggang sa maabot ng pointer ang dulo ng file. Sa dulo, isinasara namin ang file:



$row = 1 ;

kung ( ( $hawakan = fopen ( 'data.csv' , 'r' ) ) !== MALI ) {

habang ( ( $data = fgetcsv ( $hawakan , 1000 , ',' ) ) !== MALI ) {

$numero = bilangin ( $data ) ;

echo '

$numero mga patlang sa linya $row :

\n '
;

$row ++;

para sa ( $c = 0 ; $c < $numero ; $c ++ ) {

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

}

}

fclose ( $hawakan ) ;

}

?>

Output

Bottom Line

Sa PHP , maaari naming buksan ang file gamit ang fopen() function, basahin ang file linya sa pamamagitan ng linya gamit ang fgetcsv() function, at isara ang file gamit ang fclose() function. Ang prosesong ito ay maaaring ulitin para sa bawat linya sa CSV file, na nagbibigay-daan sa iyong madaling basahin at manipulahin ang tabular na data sa PHP.