moteur de recherche en php - PHP - Programmation
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 ...
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>