sparh Posté 17 Février 2008 Posté 17 Février 2008 Bonsoir, je souhaite supprimer (ou remplacer par un espcae) tous les mots de moins de 2 lettres dans une chaîne de caractère? J'ai cherché mais pas encore trouvé ? Une idée ?
Jeanluc Posté 17 Février 2008 Posté 17 Février 2008 Pour supprimer "tous" les mots de 1 ou 2 lettres ou chiffres : $chaine = preg_replace ('/^\w\w? /', '', $chaine);$chaine = preg_replace ('/ \w\w?$/', '', $chaine);$nouvelle_chaine = preg_replace ('/ \w\w? /', ' ', $chaine); Jean-Luc
sparh Posté 17 Février 2008 Auteur Posté 17 Février 2008 Merci Jean Luc, c'est parfait En fait je travaille sur un système de recherche. Le système: Je récupère la recherche, j'enlève les mots de moins de 2 lettres. Je met les mots clés restant dans un tableau et je cherche avec un LIKE NomChamp='%motclé%' dans tous les champs et avec tous les mots clés recherché Mais comment trier les résultats d'une recherche avec plusieurs LIKE NomChamp='%motclé%' par pertinence ? ps: aussi si vous connaissiez un bon site pour débuter avec les expressions régulières (je crois que c'est ça ce que m'a donné Jean Luc) car j'aimerai bien apprendre. Merci
karnabal Posté 17 Février 2008 Posté 17 Février 2008 Tu peux commencer par jeter un oeil ici : s'initier aux expressions régulières.
Anonymus Posté 17 Février 2008 Posté 17 Février 2008 Pour ton problème de 'pertinence', tu devrais lire les publications : http://www.webmaster-hub.com/publication/_Cariboo_.html et tu comprendra que.. pertinence rime avec patience, lorsqu'il s'agit de la trouver Pour ton problème de "2 lettres", tu aurais pu t'en sortir avec un 'explode' et une condition : $array = explode(" ",$string);foreach($array as $k => $v)if(strlen($k)>2) $query .= " LIKE '%".$v."%' " Bon, en gros, quoi.. Nicolas.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant