Moteur de recherche

Résolu
cavujo Messages postés 68 Statut Membre -  
zoby44 Messages postés 868 Statut Membre -
Bonjour,
Je dispose de vidéos et de musiques tout format dont je suis l'entier auteur, et j'aurais voulu afficher un moteur de recherche (interne) sur ma page d'accueil pour facilement les retrouver dans les dossiers de mon localhost.À savoir deux dossiers : video et musique.(mon .php d'accueil est au même endroit que mes dossiers video et musique)

Cela est-il possible ? à savoir faire une recherche directement sur les fichiers contenu dans mes dossiers video et musique sans référencement de type MySQL ?

Merci de m'aider,

(débutant mais prêt à y passer des heures, des jours...mais pas des mois....quoique^^)
Configuration: Windows XP
Firefox 3.0.6

7 réponses

  1. zoby44 Messages postés 868 Statut Membre 199
     
    Salut, c'est tout a fait possible. Vu que je me faisait un peu ch***, je me suis dit que ça me ferais un bon exercice ^^,
    Donc sa donne ça :
    	<!-- formulaire de recherche -->
    	<form>
    		<input type="text" name="search"/>
    		<input type="submit"/>
    	</form>
    	<hr/>
    <?php
    	//Fonction de recherche
    	function search($dir,$search) {
    		//Compteur pour vérifier la présence de ficher et afficher l'erreur
    		$i=0;		
    		echo 'Dossier :'.$dir.'<br/>';		
    		//Ouverture du répertoire
    		if (is_dir($dir)) {
    			if ($dh = opendir($dir)) {
    				// Boucle sur chaque fichier du répertoire
    				while (($file = readdir($dh)) !== false) {
    					//On affiche uniquement si le nom du fichier correspond à la recherche
    					if(ereg("$search(.{0,100})",$file,$sortie)) {
    						echo '<a href="'.$dir.$file.'">'.$file.'</a><br>';
    						$i++;
    					}
    				}
    				//On ferme le repertoire
    				closedir($dh);
    			}
    		}
    		// Si on ne trouve rien
    		if ($i === 0) {
    			echo 'Rien ne correspond a votre recherche<hr/>';
    		}
    	}
    	
    	if(!empty($_GET['search'])) {
    		$search = $_GET['search'];
    		
    		//Mettre le nom des dossier qui correspond bien ici
    		$dossier[0] = "dossier1/";
    		$dossier[1] = "dossier2/";
    		
    		$z = count($dossier);
    		for ($i=0; $i < $z; $i++) {
    			// lancement de la fonction de recherche
    			search($dossier[$i],$search);
    		}
    	}
    ?>
    


    Par contre, ça ne scanne pas les sous-dossiers. Voila.
    0
  2. cavujo Messages postés 68 Statut Membre 1
     
    merci à toi !

    Je viens de l'intégrer à ma page d'accueil.....mais lorsque je fais une recherche : exemple atlas....une musique mp3 véritablement contenue dans mon dossier music...il ne me le trouve pas et m'indique ce que codé.

    Sais tu pourquoi cela ne fonctionne pas ?
    0
  3. zoby44 Messages postés 868 Statut Membre 199
     
    La je vois pas trop ce que tu veux dire. Il te met quoi exactement. Il est en ligne ton site ?
    0
  4. cavujo Messages postés 68 Statut Membre 1
     
    il me met
    Dossier :video/
    Rien ne correspond a votre recherche

    ....idem pour music...
    j'héberge mon site avec wamp server...
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. zoby44 Messages postés 868 Statut Membre 199
     
    Euh, j'avais pas vu, c'est sensible a la casse, donc si tu as des majuscules dans tes fichiers, ca ne fonctionne pas.
    Remplace :
    if(ereg("$search(.{0,100})",$file,$sortie)) {

    Par:
    if(preg_match("#$search#i",$file)) {


    Ça devrait mieux marcher.
    0
  7. cavujo Messages postés 68 Statut Membre 1
     
    wouaa... ca marche tout simplement parfaitement

    merci à toi zoby44, vraiment ^^
    0
  8. zoby44 Messages postés 868 Statut Membre 199
     
    De rien. Met en résolu stp.
    0