X-Git-Url: http://git.cyclocoop.org/?p=ptitvelo%2Fweb%2Fwww.git;a=blobdiff_plain;f=www%2Fecrire%2Finc%2Frechercher.php;fp=www%2Fecrire%2Finc%2Frechercher.php;h=5b61f7db13eefe78fa47f5c080007c083b6db896;hp=858137f8165071201cb7a58b364a1250e25e093c;hb=b97874b04ea8ca43d21b7ef7309feff8ef0e4a07;hpb=92c7d7f7bccb9629bb7c81b9582b56b61c3f8ec9 diff --git a/www/ecrire/inc/rechercher.php b/www/ecrire/inc/rechercher.php index 858137f..5b61f7d 100644 --- a/www/ecrire/inc/rechercher.php +++ b/www/ecrire/inc/rechercher.php @@ -70,9 +70,21 @@ function expression_recherche($recherche, $options) { } else{ // s'il y a plusieurs mots il faut les chercher tous : oblige REGEXP + // sauf ceux de moins de 4 lettres (on supprime ainsi 'le', 'les', 'un', + // 'une', 'des' ...) if (preg_match(",\s+,".$u, $recherche)){ $is_preg = true; - $recherche = preg_replace(',\s+,'.$u, '|', $recherche); + $recherche_inter = '|'; + $recherche_mots = explode(' ', $recherche); + $min_long = defined('_RECHERCHE_MIN_CAR') ? _RECHERCHE_MIN_CAR : 4; + foreach ($recherche_mots as $mot) { + if (strlen($mot) >= $min_long) { + $recherche_inter .= $mot.' '; + } + } + // mais on cherche quand même l'expression complète, même si elle + // comporte des mots de moins de quatre lettres + $recherche = rtrim($recherche.preg_replace(',\s+,'.$u, '|', $recherche_inter), '|'); } $preg = '/'.str_replace('/', '\\/', $recherche).'/' . $options['preg_flags'];