moteur de recherche en php

moteur de recherche en php - PHP - Programmation

Marsh Posté le 14-02-2008 à 22:08:02    

bonjour, je voudrais créer un petit moteur de recherche pour mon site.
J'ai recuperer ce code php mais il ne m'affiche jamais aucun resultat
voici mon code:
 
 
<?php /* -------Déclaration des variables ----------*/
 $i=0; //initialisation du compteur de résultat à zéro
 $resultat=""; //initialisation de la chaine qui stocke les fichiers de résultats
 $trouve=0; //initialisation de la vraible "drapeau"
 if ($_POST['action']=="Recherche Interne" && $_POST['recherche']!="" )  
 {
  $files = glob("*.html" ); //changer ici par l'extension voulue
  foreach ($files as $filename)  
   { //boucle qui ouvre les fichiers 1 par 1
    $fichier = fopen($filename,"r" );
    while (!feof ($fichier))  
     {
      $donnees = strtolower(strip_tags(fgets($fichier, 4096)));
      $pos = strpos($donnees, strtolower($_POST['recherche']));
      if ($pos>0) $trouve=1;
     }//fin de la boucle
     if ($trouve==1)  
     {
      $resultat.="<a href='$filename'>$filename</a><br>";
      $i++;
     }
    fclose($fichier);
    $trouve=0;
   }
 }
?>
 
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
</head>
 
<body>
 
<!-- formulaire de recherche -->
<form name="moteur" method="post">
 <input type="text" name="recherche">
 <input type="submit" name="action" value="Recherche Interne">
</form>
<!--fin du formulaire -->
 
<?
//affichage des resultats
echo "<h4>$i Résultat(s) pour l'occurence : $recherche </h4>";
echo $resultat;
if ($resultat=="" ) echo "pas de résultat trouvé";
?>
 
</body>
</html>

Reply

Marsh Posté le 14-02-2008 à 22:08:02   

Reply

Marsh Posté le 14-02-2008 à 23:43:18    

c'est assez spécial comme moteur de recherche. As-tu testé avec de petits fichiers et des mots simples ?
As-tu la certitude que la recherche se fasse convenablement ?
 
C'est le danger du copier/coller d'internet, c'est qu'il n'y a pas forcément les structures de contrôle ...
quelques tests simples pour débugger :
- afficher le nom du fichier où il est en train d'effectuer la recherche (au moins, tu es sûr qu'il passe bien par un fichier)
- afficher les données qu'il lit du fichier (pour un petit fichier, tu sauras à vue d'oeil si ta recherche aboutit ou non)
- s'il est censé trouver qqch, afficher la position où il le trouve
- afficher le contenu des différentes variables avec un print_r($var) ou un var_dump($var)
bien entendu je suppose que tu ne fais pas de tests sur l'encodage des caractères, parce que un "é" en ISO-8859-15 n'est pas pareil à un "é" en UTF-8 ou en charset Windows-1252 ...


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed