Presupunând că este necesară accesarea unor informaţii care se regăsesc într-un fişier CSV, cea mai simplă metodă pe care am întâlnit-o este redată prin scritpul de mai jos.
Fişierul-sursă (CSV)
Nume,Prenume,Functia,Vârsta
Adam,Eva,manager,30
Barbu,Sorin-Alin,economist,25
Serban,Dumitru,contabil,24
Vasiliu ,Viorel,analist,50
Alba,Dana,asistent manager,20
Calina,Doina,jurist,25
Tarca,Dumitrita,economist,35
Imbrea,Aurel,economist,45
Amanar,Misu,contabil,40
Codul
$csv = fopen('angajati.csv', 'r'); // fopen - acceseaza fisierul
while (($col = fgetcsv($csv)) !== false) // fgetcsv - obtine liniile din fisierul CSV
{echo ''.$col[0].' | '.$col[1].' | '.$col[2].' | '.'</br>';}
fclose($csv); // fclose - inchide fisierul
Pentru afişarea rezultatului, în loc de folosirea variabilelor $col[0], $col[1] etc, se poate folosi implode:
echo implode(' | ', $result) . ' <br>';
Rezultatul
Nume | Prenume | Functia |
Adam | Eva | manager |
Barbu | Sorin-Alin | economist |
Serban | Dumitru | contabil |
Vasiliu | Viorel | analist |
Alba | Dana | asistent manager |
Calina | Doina | jurist |
Tarca | Dumitrita | economist |
Imbrea | Aurel | economist |
Amanar | Misu | contabil |
În cazul în care CSV-ul conţine şi diacritice, există riscul ca aspectul acelor cuvinte ce conţin astfel de caractere să fie, după cum e de aşteptat, straniu. Astfel, dacă schimbăm puţin „datele problemei”, introducând şi numele mai româneşti, putem urma paşii de mai jos (am păstrat doar rândurile care conţin caractere româneşti), rezultatul fiind, după cum se poate remarca.
Fişierul-sursă (CSV)
Nume,Prenume,Functia,Vârsta
Şerban,Dumitru,contabil,24
Călina,Doina,"jurist, HR",25
Ţarcă,Dumitriţa,economist,35
Îmbrea,Aurel,economist,45
Amânar,Mişu,contabil,40
Codul este aproape identi cu celălalt, doar că am creat o funcţie, pe care am inclus-o într-un fişier (functii.php), pe care l-am invocat (folosind declaraţia include).
Funcţia de corecţie diactitice
function fc_diacr($txt) {
$txt=utf8_encode($txt);
$txt=str_replace("ª","Ş",$txt);
$txt=str_replace("º","ş",$txt);
$txt=str_replace("Þ","Ţ",$txt);
$txt=str_replace("þ","ţ",$txt);
$txt=str_replace("ã","ă",$txt);
return $txt;
}
Codul revizuit
include "../inc/functii.php";
$csv = fopen('angajati.csv', 'r');
while (($col = fgetcsv($csv)) !== false)
{echo ''.fc_diacr($col[0]).' | '.fc_diacr($col[1]).' | '.$col[2].' | '.'';}
fclose($csv);