|
|
|
|
maure, le mardi 15 novembre 2005 à 11:01:15je pense que la fonction ereg()
http://www.nexen.net/docs/php/annotee/function.ereg.php ainsi que des bonnes expression réguilères devraient faire l'affaire... Voilà ! :P Zep3k!GnO -->kurtis jackson:"Dans la vie tu as besoin de 3 choses : le fitness, l'aérobic et moi." |
Merci pour ton aide,
Effectivement les exp reg est une bonne idée je vais voir ce que je peux faire avec ... Mais je pense pas qu'on peut compter les mots avec les exps regs?? par exemple dans mes docs j'aimerais faire les recherches suivantes 1) chercher les docs qui contient un mots(comme "etudiant", "prof") 2)chercher les docs qui contienent les mots "prof" et "faculté" séparer par au plus 3 mots (donc il faut compter) 4) ... J'espére que j'étais assez claire. Toute idée toutes reflexion sera le bienvenu. |
2)chercher les docs qui contienent les mots "prof" et "faculté" séparer par au plus 3 mots (donc il faut compter)
4) ... <reflexion>t'as loupé le 3) hi hi hi</reflexion> bin moi j'ai une idée pour ce qui est de ton séparer par au plus 3 mots mais c'est p'tet pas la meilleure... --> Tu fais ton ereg() , si il trouve quelque chose, tu refais une expression réguilière qui cherche par exemple ton mot prof avec une fois un espace, une fois 2 esapce une fois 3 espaces je m'explique : (Expression régulière en PERL) 1 ere fois :" prof [^ ]+ faculte" <--prof espace suivi de tout sauf un espace jusqu'a qu'on ai un espace puis le mot faculté donc 1 mot entre les 2 2ème fois :" prof [^ ]+ [^ ]+ faculte" 2ème fois :" prof [^ ]+ [^ ]+ [^ ]+ faculte" Bref imbriqué dans des if ... tu vois ce que je veux dire ?! bon courage, tiens moi au courant .. Zep3k!GnO -->kurtis jackson:"Dans la vie tu as besoin de 3 choses : le fitness, l'aérobic et moi."
|
Et apres il se permet de faire une remarque sur l'absence de 3eme cas. ;-)
Sinon, il serait peu être possible de faire comme ca : " (prof|faculte) [^ ]+ [^ ]+ (prof|faculte)" Ainsi on ne cherche pas forcément avec prof en premier et faculté en dernier. Par contre on cherchera : faculté - deux mots - prof prof - deux mots - faculté faculté - deux mots - faculté prof - deux mots - prof |
Merci pour tes réponses,
Ce que tu me prepose ca va dans le sens de ce que je cherche, mais je pense que je n'ai pas été assez claire ... En fait ce que je voudrait faire c'est de proposer un formulaire à l'utilisateur dans ce formulaire on peut taper une expression et je vais chercher dans ma BDD les docs qui contiennent cette expression ( comme à la google sauf que l'exp que l'usager va écrire peut être très compliquer) |
Tu recherche des documents dans une base de données ? Il sont enregistré comment dans la base dedonnées ? Le texte est entièrement dans la base de données ?
Si c'est le cas alors tu doit faire un truc du genre : $mots=explode('',$expression);
$requete='SELECT * FROM mabase WHERE ';
foreach($mots as $value){
$requete.=' texte LIKE "%'.$value.'%" AND';
}
$requete.=' (1=1)';
Avec $expression correspondant à l'expression entrer par l'uilisateur. La requete te permetra de retourner tout les texte qui ont tous les mots rechercher. Si tu remplace le AND par OR, tu aura tout les texte qui ont au moins un mots rechercher. Inconvéniant : c'est assez lourd pour la base de données et la requete risque de prendre du temps. |
Merci pour vos réponses, Effectivement les docs sont entierement sur la base et votre requête réponds bien à des cas, mais il y'a d'autres cas ou cette requête est limitée exemple : chercher les docs qui contienent les mots "prof" et "faculté" séparer par au plus 3 mots (donc il faut compter???) ...
Sinon bien vu le fait de citer le pb du temps, car les traitements que je vais faire demandent de la rapidité ... La discution reste ouverte si vous avez d'autres idées merci de les faire partager |
La méthode à la google reste encore de faire un champ mot clé pour chaque document, dans lequels il y a tout les mots important du document (on enleve : 'la', 'les', 'et', ..) et on fait la recherche seulement sur les mots clé.
Le temps de recherche est plus rapide mais il y toujours le probleme du comptage des mots. A la limite il faudrait faire la recherche en deux temps : 1- recherhcer les documents possédant les mot rechercher 2- faire le comptage dans les documents trouvé lors de la phase 1 |
Jj'aimerais juste savoir que veut dire la dernière partie de la requête ( $requete.=' (1=1)'; )??
merci encore, |
Quand je fait le foreach, je met AND à la fin de chaque ligne. Pour pas avoir une requete du genre :
SELECT * FROM mabase WHERE texte like 'prof AND texte LIKE 'faculte' AND je rajoute le '(1=1)' qui correspond a true, ainsi la requete reste corecte. Pour le cas ou l'on met des OR, il faut mettre (1=0) => false
|
| 27/10 00h37 | [PHP] Les ressemblances à ne pas confondre | PHP |
| 13/11 01h31 | [Dico] Dictionnaires - Définitions - Extensions | Internet utile |
| 16/08 21h40 | Choisir une distribution Linux | Distributions |
| 09/04 00h06 | Comment afficher l'adresse IP d'un visiteur ? | PHP |
| 08/11 23h32 | [RegExp] Récupérer une adresse IP | Expressions régulières |
| 14/06 12h41 | Recherche textuelle en php | 1 |
| 14/06 04h41 | PHP : Rechercher un mot dans la page ? | 4 |
| 05/06 10h43 | [PHP] recherche dans BDD | 3 |
| 13/05 11h41 | [PHP]Recherche avec plusieurs critéres | 3 |
| 01/05 13h59 | PHP ajout Texte dans fichier TXT | 6 |
![]() | TextWrangler - TextWrangler est un éditeur de texte évolué. Il propose de nombreuses fonctionnalités : recherche/remplacement... | Catégorie: Traitement de texte Licence: Freeware/gratuit |
![]() | PHP Edit - PHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de... | Catégorie: PHP Licence: Freeware/gratuit |
![]() | PSPad - PSPad est un excellent éditeur de texte. Il est utile pour travailler sur du simple texte, mais aussi sur du HTML, CSS,... | Catégorie: Développement Licence: Freeware/gratuit |
![]() | Texter - Texter est une véritable révolution dans le monde la saisie ! Texter vous permet de gagner du temps lors de la frappe tout... | Catégorie: Bureautique Licence: Freeware/gratuit |
![]() | Textorm Sweety-Cam Chien | Catégorie: Webcam | 15.90 € La Boutique Du Net |
![]() | Textorm 6A19 Mid Tower | Catégorie: Boîtier PC | 38.00 € La Boutique Du Net |
![]() | Textorm 974 Mo Mid | Catégorie: Boîtier PC | 44.40 € La Boutique Du Net |
![]() | Textorm XTD 3 2.1 | Catégorie: Enceintes PC | 45.90 € PriceMinister |