Căutare într-un fişier CSV, via PHP

După cum am menţionat în articolul anterior, uneori poate fi utilă conectarea la un fişier CSV, evitând astfel alte conversii. Un aspect important care se poate profila este obţinerea unor rezultate, pe baza căutărilor, mai ales dacă sunt multe înregistrări. Procedura utilizată poate fi destul de simplă, redată fiind mai jos.

În prealabil, însă, am „confecţionat” (mai corect spus, am improvizat) trei funcţii (pe lângă cea prezentată în articolul precedent (fc_diacr) care să mă ajute să elimin diacriticile, astfel încât să nu fie surprize la căutare.

Funcţia de eliminare a diacriticilor

function fc_diacr_elim($txt) {
$txt=str_replace("Ă","A",$txt);
$txt=str_replace("Â","A",$txt);
$txt=str_replace("Î","I",$txt);
$txt=str_replace("Ş","S",$txt);
$txt=str_replace("Ţ","T",$txt);
$txt=str_replace("ă","a",$txt);
$txt=str_replace("â","a",$txt);
$txt=str_replace("î","i",$txt);
$txt=str_replace("ş","s",$txt);
$txt=str_replace("ţ","t",$txt);
return $txt;
}

Funcţia pentru pregătirea criteriului de căutare

function fc_caut_crit($txt)
{
$txt=rtrim($txt);
$txt=ltrim($txt);
$txt=fc_diacr_elim($txt);
$txt=strtolower($txt);
return $txt;
}

Funcţia pentru pregătirea valorii căutate

function fc_caut_val($txt)
{
$txt=rtrim($txt);
$txt=ltrim($txt);
$txt=fc_diacr($txt);
$txt=fc_diacr_elim($txt);
$txt=strtolower($txt);
return $txt;
}

Codul propriu-zis

include "../inc/functii.php";
if (!isset($_REQUEST['nume']))
{ // Util mai ales la prima accesare, pentru a evita un mesaj de eroare
echo '';
}
else
{ // Efectuarea căutării
$caut = $_REQUEST['nume'];
$caut =fc_caut_crit($caut);
if (($fp = fopen("angajati.csv", "r")) !== false) {
while (($td = fgetcsv($fp)) !== false) {
$nume=$td[0];
$nume =fc_caut_val($nume);
if($nume === $caut)
{echo fc_diacr($td[0]).' '.fc_diacr($td[1]).', '.$td[2].'
'";}
}
fclose($fp);
}
}

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