Aller au contenu

Sujets conseillés

Posté

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 ?

Posté

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

Posté

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

Posté

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.. :D

Nicolas.

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...