Problème RegEx et accent - PHP - Programmation
Marsh Posté le 11-09-2014 à 14:23:45
Personne ?
J'ai pensé a passer mon $word, $row[0] et $row[1] a un str_replace pour remplacer tous les caractères accentué par leur équivalent non accentué mais du coups je renverrais un résultat "faux" à mon autocomplete...
Y'a pas un flag spécifique ou une astuce autre propre au regex pour les rendre accent-insensitive ?
Marsh Posté le 11-09-2014 à 16:17:16
Salut,
Pour tes accents, pas à ma connaissance...
En revanche tu dois échapper ta variable.
Quand on concatène une chaîne dans une regexp on s'expose au risque que le caractère de délimitation de regexp (ici la dièse # ) soit présent dans la chaîne concaténée.
Donc :
Code :
|
Deviendrait :
Code :
|
Marsh Posté le 11-09-2014 à 16:58:23
Merci, je n'y avais pas pensé...
...peu de chance qu'un utilisateur rentre un # mais quand même. ^^
Du coups pour mon problème j'ai fait une manip de conversion sans accent :
Code :
|
Ça fonctionne mais c'est un peu dommage d'avoir mon retour en autocomplete sans les accents. :-/
Marsh Posté le 11-09-2014 à 12:07:38
Bonjour,
Je fais un moteur de recherche de en autocomplete qui cherche dans plusieurs champs dans ma base.
Pas de problème au niveau de ma requête, mon MATCH AGAINST (nom, prenom) AGAINST ('+Stephane*') me renvoie bien les lignes qui ont Stephane et ou Stéphane
Par contre en php je fais des regex pour mes résultats pour savoir dans quel colonne se trouve mon résultat positif.
Le but de la manœuvre étant aussi d'afficher le mot complet, le mec rentre "ste" je lui affiche "prenom : Stéphane"
Ça marche si le mec rentre sa recherche avec accent car ma regex sera bonne, par contre si on rentre sans accent, ma regex ne match pas...
Auriez vous une solution (PHP ou SQL) à mon problème ?
---------------
D3