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
1 2 3 4 5 6 7 8 9 10 11 12 13 |
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
1 2 3 4 5 6 7 8 |
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
1 2 3 4 5 6 7 8 9 |
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
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].'<br>'";} } fclose($fp); } } |