Bonjour, Je fais mon premier formulaire de recherche et je rencontre une difficultés. J'y suis presque mais la langue française (les accents surtout) m’empêche de parvenir à un résultat que je souhaites. Je ne savais pas comment m'y prendre alors après quelques recherches j'ai fais ceci : **Chaine envoyée :** l'étoile du 33 ! qui monte@; Juste là **Traitement :** [code] $search = trim('l\'étoile du 33 ! qui monte@; Juste là'); $search = preg_replace('#[^[:alnum:]]#u', ' ', $search); $search = preg_replace('# {2,}#', ' ', $search); $search = preg_replace ('/^\w\w? /', '', $search); $search = preg_replace ('/ \w\w?$/', '', $search); $search = preg_replace ('/ \w\w? /', ' ', $search); $search = urlencode(htmlentities($search)); if(substr($search,-1,1) == '+'){ $search = substr($search,0,-1); } [/code] **Retour :** étoile 33 qui monte Juste là Ceci correspond presque à ce que je veux : - remplacer ce qui n'est pas alpha numérique par un espace** - supprimer les mot de 2 lettres** - encoder l'url** - supprimer le dernier + dans la chaine si présent** Le problème et que dans le retour il reste un 'là' qui est présent parce qu’il n'a pas été supprimé du fait de l'accent présent sur le a. Pourriez-vous m'aider à résoudre ce problème ? D'avance merci.
Bonjour
un petit tour sur google:
http://www.weirdog.com/blog/php/supprimer-les-accents-des-caracteres-accentues.html
une question débile me vient à l'esprit, je sens que je vai dire une grosse connerie mais je la tente, tu charge quoi comme type de caractére dans ta page html
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
Bonjour,
pour supprimer les caractères accentués je sais faire mais je ne veux pas le faire.
ce que je veux faire c'est permettre une recherche de mot accentués ou non.
Exemple l'utilisateur tape ceci dans le champ de recherche : l'étoile du 33 ! qui monte@; Juste là
ce qui donne : $search = 'l\'étoile du 33 ! qui monte@; Juste là ';
donc ici je voudrais que mon traitement avant redirection fasse ceci :
Supprimer les espaces présent en début et en fin
Remplacer ce qui n'est pas alpha numérique par des espaces
Remplacer les caractère espace plusieurs fois consécutif par un seul
Supprimer les mot qui ne contiennent que 2 caractères
Encoder l'url pour remplacer les accent par leurs équivalent (ça fait moche mais ça fonctionne) et les espace par des +
Supprimer le dernier + si présent
ce qui retourne au final : $search = 'étoile 33 qui monte Juste là';
et je le redirige vers une page resultat-de-recherche/recherche=$search
donc ce qui donne avec ma recherche de départ + mon traitement : resultat-de-recherche/recherche=%26eacute%3Btoile+33+qui+monte+Juste+l%26agrave%3B
Je ne suis pas tout à fait satisfait car dans ce résultat il reste un mot de 2 caractères (là) et il est toujours la à cause de son accent.
Je ne sais pas comment faire mieux. Peux être que je m'y prend pas comme il faut du tout, qu'en pensez vous ?
Merci pour le lien google, je ne connaissais pas.