Petit moteur qui ne marche pas

narvaline -  
sebshiva Messages postés 198 Statut Membre -
Bonjour,
j'ai ici un code d'un moteur de recherche(en php) que j'ai inserer dans une des pages d'un site web (que je suis entrain d'elaborer) mais qui ne marche pas (pour des raisons que j'ignore biensur :d)
voila c'est sencé rechercher le mot "internet" (vous l'aver remarqué :d) mais au fait ça affiche toujours le mm message: "Indiquez un nom de dosier!!!" et ça me déboussole completement!
est ce que quelqu'un peut me dire pourquoi et comment ça marche ce truc? paske comme vous pouvez le constater chuis une newbe en php et je me trouve coincée.

merci à vous et voila le scripte:

<?
$recherche = "internet";

$page_courante = "moteur.php";

$dossier_départ = "site_projet";

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 {
if($dossier.$contenu != $page_courante) {

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

$contenu_fichier = @strip_tags($contenu_fichier);

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

}

}
}

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

2 réponses

sebshiva Messages postés 198 Statut Membre 10
 
Salut

if(is_dir($dossier_depart.$contenu)) {
0
Utilisateur anonyme
 
bonjour sebshiva et merci pour ta reponse super rapide mais est ce ke tu peu developper un peu plus stp?
g pas compris à vrai dire :p...

merci encore
0
Utilisateur anonyme
 
slt encore

si g bien compris ce "if..." teste si le dosier de depart de la recherche est un repertoire, si c'est le cas il effectue la recherche sinon il affiche le message "Indiquez un nom de dosier!!"
mais moi lui ai indiqué de chercher dans "site_projet" et c'est le repertoire ki contient le site pourkoi le test n'est pas valide alors? c ça ke j comprend pas

merci de me repondre
0
sebshiva Messages postés 198 Statut Membre 10
 
Salut

C'est peut-être moi qui ai mal compris... "$dossier_départ" c'est ce que tu passe en paramètre à ta fonction?
0
sebshiva Messages postés 198 Statut Membre 10 > sebshiva Messages postés 198 Statut Membre
 
Parce que je vois que tu déclare $dossier_départ = "site_projet";
et tu utilise $dossier tout cour après...
0
sebshiva Messages postés 198 Statut Membre 10 > sebshiva Messages postés 198 Statut Membre
 
Bon, y'a personne?

ça m'a amusé de me pencher sur ton problème...
J'ai revu entièrement (ou presque) ta fonction.
Je suis parti d'une petit fonction de Malalam et voici ce que ça donne:

$recherche = "internet";
$page_courante = "moteur.php";
$dossier_départ = "site_projet";

function recursive_readdir ($dir,$recherche,$pageCourante) {
	$dir = rtrim ($dir, '/'); // on vire un eventuel slash mis par l'utilisateur de la fonction a droite du repertoire
	if (is_dir ($dir)) // si c'est un repertoire
		$dh = opendir ($dir); // on l'ouvre
	else {
		echo $dir, ' n\'est pas un repertoire valide'; // sinon on sort! Appel de fonction non valide
		exit;
	}
	while (($file = readdir ($dh)) !== false ) { //boucle pour parcourir le repertoire
		if ($file !== '.' && $file !== '..') { // no comment
			$path =$dir.'/'.$file; // construction d'un joli chemin...
			if (is_dir ($path)) { //si on tombe sur un sous-repertoire
				recursive_readdir ($path,$recherche,$pageCourante); // appel recursif pour lire a l'interieur de ce sous-repertoire
			}
			else
			{
				$fichier=explode('/',$path);
				
				if ($pageCourante!==$fichier[count($fichier)-1])
				{
					$contFile=file_get_contents($path);
					if(ereg("$recherche(.{0,50})",$contFile,$sortie)) {
					echo $path." :<br>$recherche".$sortie[1]."<br>";}
				}
			}
		}
	}
	closedir ($dh); // on ferme le repertoire courant
}
recursive_readdir ($dossier_départ,$recherche,$page_courante);


Voilou

Bonne journée.
~~(-_-)~~
0
Utilisateur anonyme > sebshiva Messages postés 198 Statut Membre
 
salut sebshiva

merci pour ton script j vais assayer de comprendre son fonctionnement et le tester et j'espère pouvoir faire la recherche cette fois ci.

bonne journée à toi et merci encore
0
sebshiva Messages postés 198 Statut Membre 10 > Utilisateur anonyme
 
De rien! ;)
Désolé pour la mise en page...
0