Recherche avec accent en PHP
- Accueil
- Forum
- Programmation
- PHP
- Recherche avec accent en PHP
titanium47 Le 18 juillet 2016 à 11:45 (Édité le 25 janvier 2019 à 17:51)
Merci d'avance de m'aider
Nobodief Le 18 juillet 2016 à 11:50 (Édité le 1 janvier 1970 à 01:00)
public static function no_accent($str){
$url = $str;
$url = preg_replace('#Ç#', 'C', $url);
$url = preg_replace('#ç#', 'c', $url);
$url = preg_replace('#è|é|ê|ë#', 'e', $url);
$url = preg_replace('#È|É|Ê|Ë#', 'E', $url);
$url = preg_replace('#à|á|â|ã|ä|å#', 'a', $url);
$url = preg_replace('#@|À|Á|Â|Ã|Ä|Å#', 'A', $url);
$url = preg_replace('#ì|í|î|ï#', 'i', $url);
$url = preg_replace('#Ì|Í|Î|Ï#', 'I', $url);
$url = preg_replace('#ð|ò|ó|ô|õ|ö#', 'o', $url);
$url = preg_replace('#Ò|Ó|Ô|Õ|Ö#', 'O', $url);
$url = preg_replace('#ù|ú|û|ü#', 'u', $url);
$url = preg_replace('#Ù|Ú|Û|Ü#', 'U', $url);
$url = preg_replace('#ý|ÿ#', 'y', $url);
$url = preg_replace('#Ý#', 'Y', $url);
return ($url);
}
}
Cette fonction permet de convertir automatiquement les accents d'une variable, il te faudra inverser tout, mais cela peut-être utile. titanium47 Le 18 juillet 2016 à 11:55 (Édité le 1 janvier 1970 à 01:00)
Nobodief Le 19 juillet 2016 à 08:00 (Édité le 19 juillet 2016 à 08:02)
Il te suffit de faire une fonction pour déterminer la présence de ta recherche dans la base de données, tu vérifie si la valeur est supérieure à 0, si ce n'est pas le cas, tu change ta variable qui contient les mots de recherche en lui retirant ou ajoutant des accents.
static function GetCount($where, $valeurs) {
global $bdd;
$count = $bdd->prepare('SELECT * FROM recherche WHERE '.$where.' = ?');
$count->execute(array($value));
$count = $count->rowCount();
return $count;
}
Cela te permettra de chercher dans la base de données si $valeur est présent, si c'est le cas il retourne 1, sinon 0.
Ensuite dans ta requête de recherche, tu lui donne plusieurs possibilité grâce au condition, tu dit que si ta valeurs de base ne retourne rien, alors tu refait la requête avec la valeur ayant eu la conversion des accents.
titanium47 Le 19 juillet 2016 à 11:55 (Édité le 1 janvier 1970 à 01:00)