begin process at 2012 02 11 00:55:09
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Application

 > MOTEUR DE RECHERCHE INTERNE SIMPLE

MOTEUR DE RECHERCHE INTERNE SIMPLE


 Information sur la source

Note :
4,83 / 10 - par 6 personnes
4,83 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Application Niveau :Initié Date de création :01/02/2003 Date de mise à jour :04/02/2003 13:30:39 Vu :18 373

Auteur : revinc

Ecrire un message privé
Commentaire sur cette source (17)
Ajouter un commentaire et/ou une note

 Description

Ce petit moteur de recherche interne ouvre récursivement tous les fichiers présents dans un dossier et ses sous-dossiers et recherche si un mot est présent dans les fichiers trouvés.
Très simple, assez lent, ne demande qu'à être amélioré. Adapté pour un faible nombre de fichiers à rechercher.
Il n'y a que trois variables à paramétrer. Ce script est donc facile à mettre en oeuvre...  

Source

  • <?
  • // cette page s'appelle ici moteur.php
  • // le dossier de départ pour la fontion récursive.
  • // le script scanne tous les sous-dossiers présents dans ce dossier et effectue une fonction de recherche quelconque sur ou dans tous les fichiers trouvés
  • // on recherche le mot...
  • $recherche = "internet";
  • // nom de la page où se trouve le script, histoire que le script ne tourne pas indéfiniment
  • $page_courante = "moteur.php";
  • // le dossier de départ pour la fonction récursive
  • // rien = dossier courant
  • $dossier_départ = "";
  • function dossier($dossier,$recherche,$page_courante) {
  • $pointeur = opendir($dossier);
  • readdir($pointeur);
  • readdir($pointeur);
  • while($contenu = readdir($pointeur)) {
  • if(is_dir($dossier.$contenu)) {
  • dossier($dossier.$contenu."/",$recherche,$page_courante);
  • } else {
  • /* COMMENTAIRE
  • ici on peut mettre une fonction de recherche
  • exemple :
  • if(ereg("\.php$",$contenu)) {
  • echo $dossier.$contenu."<br>";
  • }
  • cet exemple affiche les fichiers dont l'extension est .php
  • ou on peut afficher tous les fichiers trouvés dans le dossier scanné :
  • echo $dossier.$contenu."<br>";
  • FIN COMMENTAIRE */
  • // Fonction de recherche retenue : on ouvre tous les fichiers sauf celui
  • // qui contient ce script et si le mot $recherche
  • // est présent dedans, on affiche le nom du fichier et ensuite le mot recherché et les
  • // 100 caractères qui suivent le mot dans le fichier
  • // attention méthode lente et peu adaptée à un grand nombre de données
  • if($dossier.$contenu != $page_courante) {
  • $contenu_fichier = join("",file($dossier.$contenu));
  • // on supprime les balises html et php du fichier s'il y en a,
  • // pour ne pas chercher dedans
  • // Vérifiez la syntaxe de vos pages !!!
  • $contenu_fichier = @strip_tags($contenu_fichier);
  • if(ereg("$recherche(.{0,100})",$contenu_fichier,$sortie)) {
  • echo $dossier.$contenu." :<br>$recherche".$sortie[1]."<br><br><br>";
  • }
  • }
  • // fin fonction de recherche
  • }
  • }
  • }
  • // lancement de la fonction de recherche
  • if(is_dir($dossier_départ)) {
  • dossier($dossier_départ,$recherche,$page_courante);
  • } else {
  • echo "Indiquez un nom de dossier !!!";
  • }
  • ?>
<?
// cette page s'appelle ici moteur.php

// le dossier de départ pour la fontion récursive.
// le script scanne tous les sous-dossiers présents dans ce dossier et effectue une fonction de recherche quelconque sur ou dans tous les fichiers trouvés


// on recherche le mot...
$recherche = "internet";

// nom de la page où se trouve le script, histoire que le script ne tourne pas indéfiniment
$page_courante = "moteur.php";

// le dossier de départ pour la fonction récursive
// rien = dossier courant
$dossier_départ = "";

function dossier($dossier,$recherche,$page_courante) {

$pointeur = opendir($dossier);

readdir($pointeur);
readdir($pointeur);

while($contenu = readdir($pointeur)) {

if(is_dir($dossier.$contenu)) {
dossier($dossier.$contenu."/",$recherche,$page_courante);
} else {

/* COMMENTAIRE

ici on peut mettre une fonction de recherche
exemple : 

if(ereg("\.php$",$contenu)) {
echo $dossier.$contenu."<br>"; 
}
cet exemple affiche les fichiers dont l'extension est .php

ou on peut afficher tous les fichiers trouvés dans le dossier scanné :

echo $dossier.$contenu."<br>";

FIN COMMENTAIRE */

// Fonction de recherche retenue : on ouvre tous les fichiers sauf celui 
// qui contient ce script et si le mot $recherche
// est présent dedans, on affiche le nom du fichier et ensuite le mot recherché et les
// 100 caractères qui suivent le mot dans le fichier
// attention méthode lente et peu adaptée à un grand nombre de données

if($dossier.$contenu != $page_courante) {

$contenu_fichier = join("",file($dossier.$contenu));

// on supprime les balises html et php du fichier s'il y en a,
// pour ne pas chercher dedans
// Vérifiez la syntaxe de vos pages !!!
$contenu_fichier = @strip_tags($contenu_fichier);

if(ereg("$recherche(.{0,100})",$contenu_fichier,$sortie)) {
echo $dossier.$contenu." :<br>$recherche".$sortie[1]."<br><br><br>";
}

}

// fin fonction de recherche

}
}

}

// lancement de la fonction de recherche
if(is_dir($dossier_départ)) {
dossier($dossier_départ,$recherche,$page_courante);
} else {
echo "Indiquez un nom de dossier !!!";
}
?>  

 Conclusion

bon voilà je suis sûr que ca marche, je l'ai testé chez moi... si vous avez des problèmes pour le faire marcher, envoyez un petit commentaire...  


 Sources du même auteur

Source avec Zip BASE DE MOTEUR DE RECHERCHE
MÉTHODE POUR FORMULAIRES
Source avec une capture DES GRAPHIQUES PARAMÉTRABLES
Source avec Zip TUTO+SOURCE #3 : ESPACE MEMBRE SANS MYSQL
TUTO+SOURCE #2 : ESPACE MEMBRE SANS MYSQL

 Sources de la même categorie

Source avec Zip Source avec une capture PHPREPOGENERATOR + REPO (WIN) par alvinp
Source avec Zip IPHONE - ICÔNE D'APPEL TÉLÉPHONIQUE SUR L'ÉCRAN D'ACCUEIL par Rainbow
Source avec Zip Source avec une capture [APP WEB]SERVEUREXPLOREUR par thematrix01
Source avec Zip Source avec une capture MY.BOOKMARKS par inwebo
Source avec Zip M.V.C M.E.D par faceme

Commentaires et avis

Commentaire de NiFF le 02/02/2003 14:54:55

Merci le cours de Fournier sur la récursivité!

Commentaire de Nox le 03/02/2003 03:43:36

J'aime bcp!

sutrout que c'est tres simple d'installation

10/10

Commentaire de revinc le 03/02/2003 17:34:08

désolé niff g séché les cours de fournier

Commentaire de tclo2 le 25/07/2003 15:04:27

Bonjour
j'ai essaye le programme mais ca ne marche pas.
s'il te plait indique la syntatique des parametres.
est-ce que l'example serait juste:

$recherche = "vieux";
$page_courante = "http://server/moteur.php";
$dossier_départ = "http://server";
?
j'attends de toute urgence la reponse merci




Commentaire de chris6942 le 29/09/2003 09:41:08

Bonjour

je debute et j ai besoin d aide
1 - j ai copier les lignes de votre source ( ctrl+c)
2 - j ai créer un doc txt "vide" et j ai fait ( ctrl+v)
3 - j'ai ensuite indiquer le nom du repertoire racine de mon site web

( ici intranet )
// le dossier de départ pour la fonction récursive
// rien = dossier courant
$dossier_départ = "intranet"; )



le resultat est pas terrible :
" Indiquez un nom de dossier !!!  "

Commentaire de malob87 le 12/10/2003 12:10:44

Jarive pa a le faire marcher !!!!!!!!!!!!!!!
kan je lui demande sa :
C:siteAMFEDIImoteur.php?recherche="avion"&page_courante="moteur.php"&dossier_départ=""
Komen on fé pour le faire marcher et envoyer la bone requete ???
Il me met sa :
"; } cet exemple affiche les fichiers dont l'extension est .php ou on peut afficher tous les fichiers trouvés dans le dossier scanné : echo $dossier.$contenu."
"; FIN COMMENTAIRE */ // Fonction de recherche retenue : on ouvre tous les fichiers sauf celui // qui contient ce script et si le mot $recherche // est présent dedans, on affiche le nom du fichier et ensuite le mot recherché et les // 100 caractères qui suivent le mot dans le fichier // attention méthode lente et peu adaptée à un grand nombre de données if($dossier.$contenu != $page_courante) { $contenu_fichier = join("",file($dossier.$contenu)); // on supprime les balises html et php du fichier s'il y en a, // pour ne pas chercher dedans // Vérifiez la syntaxe de vos pages !!! $contenu_fichier = @strip_tags($contenu_fichier); if(ereg("$recherche(.{0,100})",$contenu_fichier,$sortie)) { echo $dossier.$contenu." :
$recherche".$sortie[1]."


"; } } // fin fonction de recherche } } } // lancement de la fonction de recherche if(is_dir($dossier_départ)) { dossier($dossier_départ,$recherche,$page_courante); } else { echo "Indiquez un nom de dossier !!!"; } ?&gt;


HELP ! merci de repondre svp

Commentaire de informath le 11/05/2005 16:48:49

Salut revinc!

que faire si le mot cherché se trouve dans un fichier word ou pdf?

quelqu'un pourrait nous en dire qlqchose

Commentaire de obcstaff le 12/12/2005 20:42:04

Si le mot cherché est dans un fichier PDF ou WORD, il faut tout simplement ajouter ala condition les formats dans lesquels faire la recherche:

# if(ereg("\.php$"?"\.pdf$"?"\.doc$",$contenu))
#   {
#      echo $dossier.$contenu."<br>";
#   }

Les $ veulent dire kil ni a rien apré lextension du fichier et les ? equivalent à "ou". Jesper mister informath que g rep ata question....voilivoilou.... ++ PHPHFeveR

Commentaire de obcstaff le 12/12/2005 20:44:18

Si le mot cherché est dans un fichier PDF ou WORD, il faut tout simplement ajouter à la condition les formats dans lesquels faire la recherche:

# if(ereg("\.php$"?"\.pdf$"?"\.doc$",$contenu))
#   {
#      echo $dossier.$contenu."<br>";
#   }

Les $ veulent dire qu'il n'y a rien aprés l'extension du fichier et les ? équivalent à "ou". j'espere avoir repondu à ta question....voilivoilou.... ++ PHPHFeveR

Commentaire de nicklausse le 23/05/2006 12:00:48

ça marche tres bien et c'est simple à mettre en oeuvre.
merci

Commentaire de caviar le 30/08/2006 11:36:07

salut ...très sympas ton code :) ça marche impec...
mais je me demandais ...
est il possible de faire la recherche sur des parties dynamiques de texte ... par exemple une news chargée depuis une bdd ... ;)
@++

Commentaire de expertmax le 04/04/2007 02:49:48

Ce code est très mal codé, premierement tu dois mettre <?php et non <? et puis  n'utilise pas les "" mais bien les '' ensuite évite de faire des variables avec des accents francais ! A+

Commentaire de moipam le 02/06/2008 12:51:42

bonjour,

merci pour ce code
par contre je suis assez novice et je n'arrive pas vraiment à l'utiliser.
j'ai copier et coller ton code dans un fichier .txt que j'ai renommer moteur.php

j'ai modifier mon dossier a scanner et les fichier.

par contre je n'arrive pas a chercher des élément ou avoir une interface.

quelqu'un pourrais m'aider ou m'expliquer comment le mettre en place?

merci

Commentaire de bobtiste le 17/08/2008 22:59:01

sa ne marche pas... faudrait le metre a jour..

Commentaire de thekid06 le 28/08/2008 14:13:18

Le probleme chez moi c'est que tout les fichier qui sont dans mon dossier sont afficher ???

Merci comme dit BOBTISTE il faudrer mettre à jour cette source...

Commentaire de bobtiste le 28/08/2008 15:40:00 1/10

oui est pour cette raison je baisse la note... c'est domage

Commentaire de christianoprog le 29/10/2010 18:00:17

jadore les grandes choses malgre mon maque d'etudes donc je souhaite etre hyper performant je souhaite avoir les codes detailés

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 6,240 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales