Autocompletion sur un <input text> - PHP - Programmation
Marsh Posté le 27-07-2010 à 08:47:01
ReplyMarsh Posté le 27-07-2010 à 10:43:17
Merci, j'ai lu une autre page sur les Character Sets / Character Encoding Issues, ça soulage de comprendre...
Avant d'utiliser l'extension mbstring, je vais vérifier un autre truc, suite à la lecture de l'article et les symptôme que je rencontre, je me dis que c'est le strlen qui au final me posait le plus gros problème...
Marsh Posté le 20-09-2010 à 14:46:15
Pour essayer de répondre simplement, le coeur de PHP est en ISO et il ne sait traiter les chaines utf-8 que si tu les lui décodes avant. C'est aussi simple que ça
Normalement, PHP 6 devait apporter l'unicode à PHP, mais de ce que je crois ca ne sera pas pour tout de suite
Marsh Posté le 26-07-2010 à 19:47:43
Bonjour,
Le contexte :
Dans un back-office, je souhaite mettre un systeme de tags d'image.
J'ai donc un <input text> dans lequel je souhaite mettre un systeme d'auto-complétion.
Je vous epargne le JS et les requetes BDD pour se concentrer sur le problème.
J'ai donc une liste de suggestion, dans laquelle le motif reconnu se met en gras.
Je veux que se motif soit tolérant vis-a-vis des accents et ignore la casse.
J'ai réussi à en venir à bout, mais je ne pense pas m'y être pris de la bonne façon...
Quelques incompréhensions me frustrent...
Voici le code :
Le tout retourne bien "GÉRard // GeRard // GÉRard "
1/ Je ne comprend pas pourquoi je suis obligé de mettre des utf8_decode/encode...
sans ça, ça ne marche pas... la fonction cleanAccent() a été largement inspiré d'une source.
Mon fichier, mon header() ainsi que le charset HTML sont en UTF-8, pourquoi devoir décoder pour comparer ?
2/ Je n'ai pas trouver de regex pour faciliter la tache de boldingMotif()...
En existe t-il une qui permettrait d'en arriver au même résultat ? (c'est la "tolérance" des accent qui me pose problème, ainsi que laisser la suggestion dans son contexte original...)
Message édité par abais le 27-07-2010 à 10:28:57
---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.