Formation par Olivier Duffez

Formation au référencement par Olivier Duffez, créateur de WebRankInfo !
Une formule efficace alliant théorie et pratique, avec une haute disponibilité des intervenants
Cette formule a déjà convaincu plusieurs centaines d'entreprises, pourquoi pas vous ?
Réservez vite votre place en ligne (convention possible pour imputer sur le budget formation)

Formation référencement Marseille

Gestion des accents pour un moteur de recherche PHP

Aller à la page 1, 2  Suivante
Poster un nouveau sujet Imprimer cette discussion    Forum -> Administration d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
Fredo
Nouveau WRInaute

Inscrit le: 17 Sep 2003
Messages: 7

URL permanente de ce messagePosté le : Lun Sep 22, 2003 18:49    Sujet du message: Gestion des accents pour un moteur de recherche PHP

Salut,

Connaissez-vous le moyen de rechercher en PHP un mot dans une base quelconque avec ou sans accent ?

Merci beaucoup.

Fredo[/quote]
 
Fredo
Remi L.
WRInaute accro
WRInaute accro

Inscrit le: 06 Sep 2003
Messages: 1060

URL permanente de ce messagePosté le : Lun Sep 22, 2003 18:57    Sujet du message: Gestion des accents pour un moteur de recherche PHP

Je n'ai peut-être pas bien compris ta question mais il suffit de stocker les données dans ta base sans accent et d'enlever les accents du mot recherché avant de fouiller dans tes petits octets...

Pour enlever les accents tu peux utiliser un truc du genre:
Code:
function sans_accent($chaine)
{
   $accent  ="ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿ";
   $noaccent="aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyyby";
   return strtr(trim($chaine),$accent,$noaccent);
}


C'est une solution ultra-simple, il y en a d'autres...
 
Remi L. Visiter le site web du posteur
mahefarivony
WRInaute accro
WRInaute accro

Inscrit le: 14 Oct 2002
Messages: 11300

URL permanente de ce messagePosté le : Lun Sep 22, 2003 19:12    Sujet du message: Gestion des accents pour un moteur de recherche PHP

dans sa base, il a :
événement
évènement
evenement

en faisant une recherche avec evenement, l'ideal serait que les 3 ressortent ...

c'est bien cela ?
 
mahefarivony Visiter le site web du posteur
George Abitbol
WRInaute accro
WRInaute accro

Inscrit le: 06 Juin 2003
Messages: 1922

URL permanente de ce messagePosté le : Lun Sep 22, 2003 21:00    Sujet du message: Gestion des accents pour un moteur de recherche PHP

mahefarivony a écrit:
en faisant une recherche avec evenement, l'ideal serait que les 3 ressortent ...


Pour ma part, avec MySQL et en ne faisant rien de spécial, c'est ce qui se produit.
Mes champs sont de type TEXT (insensible à la casse). Il en serait peut-être autrement avec un champ BLOB.

Fred
 
George Abitbol Visiter le site web du posteur
JPC
WRInaute passionné
WRInaute passionné

Inscrit le: 02 Juin 2003
Messages: 564

URL permanente de ce messagePosté le : Lun Sep 22, 2003 22:41    Sujet du message: Gestion des accents pour un moteur de recherche PHP

de toutes façons, l'attitude par rapport aux majuscules particulièrement, et aussi aux accents, ça dépend fortement de la base de données et de sa configuration...
 
JPC
Fredo
Nouveau WRInaute

Inscrit le: 17 Sep 2003
Messages: 7

URL permanente de ce messagePosté le : Mar Sep 23, 2003 9:16    Sujet du message: Gestion des accents pour un moteur de recherche PHP

mahefarivony a écrit:
dans sa base, il a :
événement
évènement
evenement

en faisant une recherche avec evenement, l'ideal serait que les 3 ressortent ...

c'est bien cela ?


Exactement
Avec l'inverse éventuellement : en cherchant évènement on trouverait evenement
 
Fredo
Fredo
Nouveau WRInaute

Inscrit le: 17 Sep 2003
Messages: 7

URL permanente de ce messagePosté le : Mar Sep 23, 2003 9:23    Sujet du message: Gestion des accents pour un moteur de recherche PHP

Remi L. a écrit:
Je n'ai peut-être pas bien compris ta question mais il suffit de stocker les données dans ta base sans accent et d'enlever les accents du mot recherché avant de fouiller dans tes petits octets...

Pour enlever les accents tu peux utiliser un truc du genre:
Code:
function sans_accent($chaine)
{
   $accent  ="ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿ";
   $noaccent="aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyyby";
   return strtr(trim($chaine),$accent,$noaccent);
}


C'est une solution ultra-simple, il y en a d'autres...


------------------------

Merci pour cette astuce. Le problème est que les chaînes stockées dans des champs 'VARCHAR' et 'TEXT' contiennent nécessairement des accents. Je vais voir comment adapter cette fonction.
 
Fredo
Fredo
Nouveau WRInaute

Inscrit le: 17 Sep 2003
Messages: 7

URL permanente de ce messagePosté le : Mar Sep 23, 2003 10:41    Sujet du message: Gestion des accents pour un moteur de recherche PHP

Ma requête SQL de recherche est du genre :
SELECT * FROM table WHERE champs = '$expression_recherchee'

Le but étant de supprimer les accents, on applique la fonction sans_accent() sur la variable PHP $expression_recherchee.

Mais il faut aussi appliquer le même genre de fonction (en version SQL) sur le champs de la table.

Existe-t-il une astuce (équivalent SQL de strtr() ou autre) ?
 
Fredo
The Jedi
WRInaute passionné
WRInaute passionné

Inscrit le: 31 Mar 2003
Messages: 807
Localisation: Bordeaux

URL permanente de ce messagePosté le : Mer Sep 24, 2003 20:38    Sujet du message: Gestion des accents pour un moteur de recherche PHP

Et actuellement ça te retourne quoi pour l'exemple avec le mot 'évènement' ?
 
The Jedi Visiter le site web du posteur
Fredo
Nouveau WRInaute

Inscrit le: 17 Sep 2003
Messages: 7

URL permanente de ce messagePosté le : Jeu Sep 25, 2003 9:18    Sujet du message: Gestion des accents pour un moteur de recherche PHP

The Jedi a écrit:
Et actuellement ça te retourne quoi pour l'exemple avec le mot 'évènement' ?


Quand je tape 'évènement', mon moteur ne peut retourner que 'évènement' (et pas 'evenement').

Quand je tape 'evenement', mon moteur ne peut retourner que 'evenement' (et pas 'évènement').

Autrement dit, il ne peut faire la recherche que sur le mot tel qu'il est saisi au clavier.
 
Fredo
mahefarivony
WRInaute accro
WRInaute accro

Inscrit le: 14 Oct 2002
Messages: 11300

URL permanente de ce messagePosté le : Jeu Sep 25, 2003 11:09    Sujet du message: Gestion des accents pour un moteur de recherche PHP

SELECT * FROM table WHERE champs like '$expression_recherchee'
 
mahefarivony Visiter le site web du posteur
George Abitbol
WRInaute accro
WRInaute accro

Inscrit le: 06 Juin 2003
Messages: 1922

URL permanente de ce messagePosté le : Jeu Sep 25, 2003 11:11    Sujet du message: Gestion des accents pour un moteur de recherche PHP

Ta base de données c'est Mysql ? Quelle version ? Le type de tes champs ?
Parce que je viens encore de tester pour être sûr, et avec un champ TEXT ou VARCHAR, 'événement' ressort pour une recherche sur 'evenement', 'évenement', 'événement', 'évênëmènt', etc.
Et inversement, 'evenement' ressort pour une recherche sur 'événement', 'evénement', etc.

Fred
 
George Abitbol Visiter le site web du posteur
JPC
WRInaute passionné
WRInaute passionné

Inscrit le: 02 Juin 2003
Messages: 564

URL permanente de ce messagePosté le : Jeu Sep 25, 2003 13:49    Sujet du message: Gestion des accents pour un moteur de recherche PHP

c'est clair chaque base a sa façon de gérer les majuscules et accents, ses paramètres à ce sujet etc... et même son langage, si tu voulais trnasformer le contenu (transac-sql pour sql serveur pour l'exemple puisque lui a même un nom Wink )
 
JPC
Fredo
Nouveau WRInaute

Inscrit le: 17 Sep 2003
Messages: 7

URL permanente de ce messagePosté le : Ven Sep 26, 2003 10:11    Sujet du message: Gestion des accents pour un moteur de recherche PHP

George Abitbol a écrit:
Ta base de données c'est Mysql ? Quelle version ? Le type de tes champs ?
Parce que je viens encore de tester pour être sûr, et avec un champ TEXT ou VARCHAR, 'événement' ressort pour une recherche sur 'evenement', 'évenement', 'événement', 'évênëmènt', etc.
Et inversement, 'evenement' ressort pour une recherche sur 'événement', 'evénement', etc.

Fred


Ma base est de type MySQL et mes champs des TEXT et VARCHAR.

Maintenant, ça marche. J'ai enfin compris que la fonction LIKE permet la recherche d'une chaîne de caractères sans tenir compte des accents.

Vos réponses m'ont beaucoup aidé. Merci !
 
Fredo
George Abitbol
WRInaute accro
WRInaute accro

Inscrit le: 06 Juin 2003
Messages: 1922

URL permanente de ce messagePosté le : Ven Sep 26, 2003 10:57    Sujet du message: Gestion des accents pour un moteur de recherche PHP

Fredo a écrit:
J'ai enfin compris que la fonction LIKE permet la recherche d'une chaîne de caractères sans tenir compte des accents


Je voudrais pas avoir l'air d'insister Very Happy mais quand j'ai fait mes tests, c'était avec = et pas avec LIKE (mais ça marche avec les deux).
Enfin bon, de toute façon, si c'est pour une recherche mieux vaut effectivement utiliser LIKE, mais alors autant le faire avec % de part et de d'autre du mot à rechercher...

LIKE '%eve%' <-- trouve 'eve', 'évènement', 'rêve', 'grèves', etc.

Fred
 
George Abitbol Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Administration d'un site Web Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 2 - Aller à la page 1, 2  Suivante
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

Définitions :

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort