Afişare online a valorilor dintr-un fişier CSV

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);

Author: Ovidiu.S

Suficient de pasionat de această zonă profesională ca, în cazul în care ştiu ceva - cât de puţin - să împărtăşesc cu alţii.

Lasă un răspuns