Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Messages recommandés

Posté(e)

bonjour a tous

 

j' ai instaler moteured sur mon site (en construction)

 

mais chaque recherche mene a une page "executer script resultat" la requette etcetcect

 

j' ai regarder le script resultat mais je vois pas ce qui cloche,je met le script:

<?php
// ################################################################################
#####
// =============================================================================
// Moteur'Ed 1.0 - © 2001 Thierry Arsicaud (deltascripts@ifrance.com)
// =============================================================================
// ********************************************************************************
*****
// Configuration des paramètres d'affichage des résultats.
// Les intitulés des pages correspondantes sont affichés dans un tableau, par groupe de
// n réponses (paramètre à spécifier)
// ********************************************************************************
*****

// === Paramètres d'affichage du Tableau ===

$largeurTableau="95%";              // Largeur du Tableau
$NombreRepPages=10;                 // Nombre n d'intitulés de pages Web à afficher par pages de résultat
$NombreRepMax=200;                  // Nombre maximum de résultats à traiter par le moteur
$policeResultats="verdana";         // Police de caractères utilisée pour l'affichage des résultats
$couleurPoliceResultats="#000000";  // Couleur de la police de caractères utilisée pour l'affichage des résultats

// ################################################################################
#####
?>

<html>

<head>
<title>Moteur'Ed - Résultats de la recherche</title>
</head>

<body>

<!- inserez la première partie de votre code html ici ->

<?php
// ################################################################################
####
// *******************************************************************************
// Localisation de l'index dans lequel doit être effectuée la recherche
// *******************************************************************************

$fichierIndex="indexsite.dat";

// *******************************************************************************
// Liste des "mots vides", dont les valeurs ne doivent pas être prises en compte
// lors des recherches dans l'index
// *******************************************************************************

$motsVides=" and or et ou le la les un une du de des a à au aux son sa ses ne ni non sauf ce ces cet je tu il elle on nous vous ils elles etc mon ma ton ta vos se y en ";

// *******************************************************************************
// Affichage d'un message d'avertissement dans le cas où  le site n'a pas encore
// été indexé
// *******************************************************************************

if(!file_exists("indexsite.dat")) {
 print("Le site Web n'a pas encore été indexé : veuillez exécuter le <b>script d'indexation</b> avant d'effectuer votre première recherche.\n");
 exit;
}

// *******************************************************************************
// Affichage d'un message d'avertissement dans le cas de figure où l'utilisateur
// a activé la recherche sans avoir préalablement saisi de requête ($requete est nul)
// *******************************************************************************

if(!$requete) {
 print("<center>\n");
 print("<font face=\"$policeResultats\" size=\"-1\" color=\"$couleurPoliceResultats\">\n");
 print("Vous avez activé la recherche sans avoir préalablement saisi votre requête.<br>");
 print("<a href=\"moteured.php\">Cliquez ici</a> pour effectuer une nouvelle recherche.<br>\n");
 print("</font>\n");
 print("</center>\n");
}

else {

// *******************************************************************************
// Cas de figure où l'utilisateur a bien saisi une requête
// *******************************************************************************

 // *******************************************************************************
 // Analyse de la requête et préparation de la recherche. La requête (entrée par
 // l'utilisateur dans la valeur $requete) est décomposée en une série de mots clés,
 // stockés dans les tableaux $expressions et $motsCles
 // *******************************************************************************

 // === Premier nettoyage de la requête formulée par l'utilisateur ===

 $requete=trim(stripslashes($requete));

 // ***************************************************
 // === Extraction des expressions entre guillemets ===
 // ***************************************************

 $requete1=$requete;

 $expressions[]="Liste des expressions";

 while($testExpress=ereg("[\"]([^\"]+)[\"]",$requete1,$corresExpress)) {
   $exp=$corresExpress[1];
   $expressions[]=$exp;
   $requete1=ereg_replace($corresExpress[0],"",$requete1);
 }

 $nombreExpressions=count($expressions)-1; // Nombre d'expressions à analyser

 // ********************************
 // === Extraction des mots-clés ===
 // ********************************

 // === Définition de la fonction netGuil,
 // utilisée pour le nettoyage des termes
 // isolés compris entre guillemets ===

 function netGuil($term) {
   if(ereg("^[\"]*([^\"]+)[\"]*$",$term,$corres)) {
     $reps=$corres[1];
     return $reps;
   }
   else {
     return($term);
   }
 }

 // === Stockage des valeurs dans le tableau $motsCles ===

 $requete2=$requete;

 $motsCles[]="Liste des mots-clés";

 $mot=trim(stripslashes(strtok($requete2," ")));
 if(!(ereg("[ ]".$mot."[ ]",$motsVides))) {
   $motsCles[]=netGuil($mot);
 }
 while($mot=trim(stripslashes(strtok(" ")))) {
   if($mot and (!(ereg("[ ]".$mot."[ ]",$motsVides)))) {
     $motsCles[]=netGuil($mot);
   }
 }

 $nombreMotsCles=count($motsCles)-1;       // Nombre de mots-clés à analyser


 // ********************************************************************************
****
 // Ouverture du fichier indexsite.dat et stockage des lignes dans le tableau $contenuIndex
 // ********************************************************************************
****

 $contenuIndex=file($fichierIndex);

 $nlignesIndex=count($contenuIndex);
 $nombreDocumentsIndexes=($nlignesIndex-1)/4;

 // ********************************************************************************
****
 // Stockage des données dans les tableaux $cheminDocument, $titreDocument,
 // $descriptionDocument, $texteDocument
 // ********************************************************************************
****

 for($compt=1;$compt<=$nombreDocumentsIndexes;$compt++) {
   $cheminDocument[$compt]=trim(stripslashes($contenuIndex[(4*($compt-1))+1]));
   $titreDocument[$compt]=trim(stripslashes($contenuIndex[(4*($compt-1))+2]));
   $descriptionDocument[$compt]=trim(stripslashes($contenuIndex[(4*($compt-1))+3]));
   $texteDocument[$compt]=trim(stripslashes($contenuIndex[(4*($compt-1))+4]));
 }

 // ***************************************************************************
 //          ========================================================
 //          === Lancement de la procédure d'évaluation des pages ===
 //          ========================================================
 //
 // Chaque page est passée en revue et se voit attribuer des points
 // selon les règles suivantes :
 //
 // - 2 point si la requête (considérée comme expression) est présente dans le titre
 // - 1 point si la requête (considérée comme expression) est présente dans le texte indexé
 //
 // - 2 point par expression présente dans le titre
 // - 2 point par mot-clé présent dans le titre
 //
 // - 1 point par expression présente dans le texte indexé
 // - 1 point par mot-clé présent dans le texte indexé
 //
 // Note : une ou plusieurs expressions présentes donnent naturellement un meilleur
 // score à la page
 //
 // ***************************************************************************

 // Les différents documents indexés spnt passés en revue et analysés

 for($compt=1;$compt<=$nombreDocumentsIndexes;$compt++) {

   $score[$compt]=0;

   // === Recherche de la requête (considérée comme expression) dans le titre du document : 2 points
   //if(eregi("(^|[ .,:;!?'()])".$requete."([ .,:;!?'()]|$)",$titreDocument[$compt])) $score[$compt]=$score[$compt]+2;

   // === Recherche de la requête (considérée comme expression) dans le texte indexé : 1 points
   if(eregi("(^|[ .,:;!?'()])".$requete."([ .,:;!?'()]|$)",$texteDocument[$compt])) $score[$compt]=$score[$compt]+1;


   for($a=1;$a<=$nombreExpressions;$a++) {
   // ===== Recherche des expressions =====

     // === Recherche de l'expression dans le titre du document : 2 points s'il y a correspondance
     if(eregi("(^|[ .,:;!?'()])".$expressions[$a]."([ .,:;!?'()]|$)",$titreDocument[$compt])) $score[$compt]=$score[$compt]+2;

     // === Recherche de l'expression dans le texte indexé : 1 point s'il y a correspondance
     if(eregi("(^|[ .,:;!?'()])".$expressions[$a]."([ .,:;!?'()]|$)",$texteDocument[$compt])) $score[$compt]=$score[$compt]+1;

   }

   for($b=1;$b<=$nombreMotsCles;$b++) {
   // ===== Recherche des mots-clés =====

     if(eregi("([^*]*)[*]",$motsCles[$b],$corMotCle)) {

     // l'utilisateur a fait suivre le mot-clé d'une astérisque (il faut donc étendre la recherche)

       // === Recherche du mot-clé dans le titre du document : 2 points s'il y a correspondance
       if(eregi("(^|[ .,:;!?'()])".$corMotCle[1],$titreDocument[$compt])) $score[$compt]=$score[$compt]+2;

       // === Recherche du mot-clé dans le texte indexé : 1 point s'il y a correspondance
       if(eregi("(^|[ .,:;!?'()])".$corMotCle[1],$texteDocument[$compt])) $score[$compt]=$score[$compt]+1;

     }

     else {
      // le mot-clé ne comporte pas d'astérisque

       // === Recherche du mot-clé dans le titre du document : 2 points s'il y a correspondance
       if(eregi("(^|[ .,:;!?'()])".$motsCles[$b]."([ .,:;!?'()]|$)",$titreDocument[$compt])) $score[$compt]=$score[$compt]+2;

       // === Recherche du mot-clé dans le texte indexé : 1 point s'il y a correspondance
       if(eregi("(^|[ .,:;!?'()])".$motsCles[$b]."([ .,:;!?'()]|$)",$texteDocument[$compt])) $score[$compt]=$score[$compt]+1;

     }
   }
 }

 // ********************************************************************************
****
 // Tri des résultats en vue de leur affichage :
 // Les pages seront affichées de la plus pertinente à la moins pertinente
 // ********************************************************************************
****

 // Détermination du score le plus élevé parmi toutes les pages analysées

 $HiScore=max($score);


 // TRI du tableau à l'aide de la fonction asort

 arsort($score);

 // Création du tableau $documentsCorrespondantsOrd
 $documentsCorrespondantsOrd[]=0;

 for(reset($score);$cle=key($score);next($score)) {
   if(current($score)>0) {
     $documentsCorrespondantsOrd[]=$cle;
   }
 }

 $nombreCorrespondances=count($documentsCorrespondantsOrd)-1;


 // ********************************************************************************
****
 // Les résultats sont affichés dans un tableau, dont les caractéristiques ont été
 // précisées en début de script.
 // Note : les pages sont affichées dans l'ordre décroissant de leur pertinence
 // ********************************************************************************
****

 print("<table width=\"$largeurTableau\" border=\"0\" align=\"center\"> \n");  // Début du code pour l'affichage du tableau
 print("<tr><td> \n");

 if($nombreCorrespondances<1) {
   print("<center> \n");
   print("<font face=\"$policeResultats\" color=\"$couleurPoliceResultats\" size=\"-1\"> \n");
   print("Désolé, aucune page ne correspond à la recherche : '<b>$requete</b>'. <br><br> \n");
   print("</font> \n");
   print("</center> \n");
 }

 else {
   if(@ !$p) $p=1;

   if($nombreCorrespondances==1) {
     print("<font face=\"$policeResultats\" color=\"$couleurPoliceResultats\" size=\"-1\"> \n");
     print("La requête '<b>$requete</b>' a donné <b>1</b> résultat. <br>\n");
     print("</font> \n");
   }

   else {
     if($nombreCorrespondances>=$NombreRepMax) {
       print("<font face=\"$policeResultats\" color=\"$couleurPoliceResultats\" size=\"-1\"> \n");
       print("La requête '<b>$requete</b>' a donné plus de $NombreRepMax résultats. <br>\n");
       print("</font> \n");
       $nombreCorrespondances=$NombreRepMax;
     }

     else {
       print("<font face=\"$policeResultats\" color=\"$couleurPoliceResultats\" size=\"-1\"> \n");
       print("La requête '<b>$requete</b>' a donné <b>$nombreCorrespondances</b> résultats. <br>\n");
       print("</font> \n");
     }
   }

   print("<font face=\"$policeResultats\" color=\"$couleurPoliceResultats\" size=\"-1\"> \n");
   print("Liste des pages <b>".$p."</b> à <b>".(min(($p+$NombreRepPages-1),$nombreCorrespondances))."</b> :<br><br>");
   print("</font> \n");



   for($compt=$p;$compt<=min(($p+$NombreRepPages-1),$nombreCorrespondances);$compt++) {
     print("<font face=\"$policeResultats\" color=\"$couleurPoliceResultats\" size=\"-1\"> \n");
     print("<b>$compt</b>. <a href=\"".$cheminDocument[$documentsCorrespondantsOrd[$compt]]."\"><b>".$titreDocument[$documentsCorrespondantsOrd[$compt]]."</b></a><br> \n");
     print($descriptionDocument[$documentsCorrespondantsOrd[$compt]]."<br><br> \n");
     print("</font> \n");
   }

   print("<center> \n");

   if(($p-$NombreRepPages)>0) {
     print("<font face=\"$policeResultats\" color=\"$couleurPoliceResultats\" size=\"-1\"> \n");
     print("<a href=\"resultats.php?requete=".rawurlencode($requete)."&p=".($p-$NombreRepPages)."\"><< page précédente</a>   \n");
     print("</font> \n");
   }

   if($nombreCorrespondances>$NombreRepPages) {
     print("<font face=\"$policeResultats\" color=\"$couleurPoliceResultats\" size=\"-1\"> \n");
     for($a=1;$a<=(floor(($nombreCorrespondances-1)/$NombreRepPages)+1);$a++) {
       if((floor($p/$NombreRepPages)+1)==$a) {
         print("$a   \n");
       }
       else {
         @ print("<a href=\"resultats.php?requete=".rawurlencode($requete)."&p=".(($a-1)*$NombreRepPages+1)."\">$a</a>   \n");
       }
     }
     print("</font> \n");
   }

   if(($p+$NombreRepPages)<=$nombreCorrespondances) {
     print("<font face=\"$policeResultats\" color=\"$couleurPoliceResultats\" size=\"-1\"> \n");
     @ print("   <a href=\"resultats.php?requete=".rawurlencode($requete)."&p=".($p+$NombreRepPages)."\">page suivante >></a> \n");
     print("</font> \n");
   }

   print("</center> \n");
 }


 // **************************************************************************
 // Affichage du formulaire permettant d'effectuer une nouvelle recherche
 // **************************************************************************

 print("<form action=\"resultats.php\" method=\"post\"> \n");
 print("<table align=\"center\"> \n");
 print("<tr><td align=\"center\"> \n");
 print("<font face=\"$policeResultats\" color=\"$couleurPoliceResultats\" size=\"-1\"> \n");
 print("Effectuer une nouvelle recherche: <br> \n");
 print("</font> \n");
 print("</td></tr> \n");
 print("<tr><td align=\"center\"> \n");
 print("<input type=\"text\" name=\"requete\" size=\"20\"> \n");
 print("   ");
 print("<input type=\"submit\" value=\"Chercher\"> \n");

 print("</td></tr> \n");
 print("</table> \n");
 print("</form> \n");

 print("<center><font face=\"$policeResultats\" size=\"-2\" color=\"$couleurPoliceResultats\">Avec la complicité de <a href=\"http://www.echodelta.net/scriptsphp/moteured/\" target=\"_blank\">Moteur'Ed 1.0</a>, moteur de recherche interne en PHP.\n");

 print("</td></tr> \n");
 print("</table> \n");


 // **************************************************************************
 // Sauvegarde de la requête dans le fichier req.txt
 // **************************************************************************

 $idFiqReq=fopen("req.txt","a+");
 fputs($idFiqReq,$requete."\n");
 fclose($idFiqReq);
}

// ################################################################################
####
?>

<!- inserez la seconde partie de votre code html ici ->


</body>
</html>

Posté(e)

if(!file_exists("indexsite.dat")) {
 print("Le site Web n'a pas encore été indexé : veuillez exécuter le <b>script d'indexation</b> avant d'effectuer votre première recherche.\n");
 exit;
}

 

tu as exécuté le script d'indexation pour créer le fichier indexsite.dat ?

Invité darkpoet
Posté(e)
if(!file_exists("indexsite.dat")) {
 print("Le site Web n'a pas encore été indexé : veuillez exécuter le <b>script d'indexation</b> avant d'effectuer votre première recherche.\n");
 exit;
}

 

tu as exécuté le script d'indexation pour créer le fichier indexsite.dat ?

 

bonjour et merci ta reponse

 

oui j' ai executé l' indexation sous easy php mais ca ne marche toujours pas j' ai ce message a chaque fois:

 

Vous avez activé la recherche sans avoir préalablement saisi votre requête.

Cliquez ici pour effectuer une nouvelle recherche.

Posté(e)

que contient $requete? Comment la variable est-elle initialisée?

Comment la requête est-elle passée à ton script (POST? GET?)

Posté(e)
que contient $requete? Comment la variable est-elle initialisée?

Comment la requête est-elle passée à ton script (POST? GET?)

Salut et merci de ta reponse

 

le probleme venait de easyphp qui ne prennait pas en charge la requette une fois en ligne tout fonctionne

 

par contre les resultats ne sont pas a la hauteur de ce que j' attendais je suis obliger de mettre un * derriere chaque recherche et meme comme ca le sresultat est moyen : le link du site : http://general.changelog.free.fr/

je met le script resultat pour voir si on peut adapter la recherche a mes attente

 

merci encore

 

 <?php
// ################################################################################
#####
// =============================================================================
// Moteur'Ed 1.0 - © 2001 Thierry Arsicaud (deltascripts@ifrance.com)
// =============================================================================
// ********************************************************************************
*****
// Configuration des paramètres d'affichage des résultats.
// Les intitulés des pages correspondantes sont affichés dans un tableau, par groupe de
// n réponses (paramètre à spécifier)
// ********************************************************************************
*****

// === Paramètres d'affichage du Tableau ===

$largeurTableau="95%";			  // Largeur du Tableau
$NombreRepPages=10;				 // Nombre n d'intitulés de pages Web à afficher par pages de résultat
$NombreRepMax=200;				  // Nombre maximum de résultats à traiter par le moteur
$policeResultats="verdana";		 // Police de caractères utilisée pour l'affichage des résultats
$couleurPoliceResultats="#000000";  // Couleur de la police de caractères utilisée pour l'affichage des résultats

// ################################################################################
#####
?>

<html>

<head>
<title>Moteur'Ed - Résultats de la recherche</title>
</head>

<body>

<!- inserez la première partie de votre code html ici ->
<html><head><meta
content="text/html; charset=ISO-8859-1"
http-equiv="content-type"><title></title></head><body
style="background-image: url(file:///C:/Users/isa/Desktop/dossier%20manu/page-web/images/barthomer.gif);">



<?php
// ################################################################################
####
// *******************************************************************************
// Localisation de l'index dans lequel doit être effectuée la recherche
// *******************************************************************************

$fichierIndex="indexsite.dat";

// *******************************************************************************
// Liste des "mots vides", dont les valeurs ne doivent pas être prises en compte
// lors des recherches dans l'index
// *******************************************************************************

$motsVides=" and or et ou le la les un une du de des a à au aux son sa ses ne ni non sauf ce ces cet je tu il elle on nous vous ils elles etc mon ma ton ta vos se y en ";

// *******************************************************************************
// Affichage d'un message d'avertissement dans le cas où  le site n'a pas encore
// été indexé
// *******************************************************************************

if(!file_exists("indexsite.dat")) {
 print("Le site Web n'a pas encore été indexé : veuillez exécuter le <b>script d'indexation</b> avant d'effectuer votre première recherche.\n");
 exit;
}

// *******************************************************************************
// Affichage d'un message d'avertissement dans le cas de figure où l'utilisateur
// a activé la recherche sans avoir préalablement saisi de requête ($requete est nul)
// *******************************************************************************

if(!$requete) {
 print("<center>\n");
 print("<font face=\"$policeResultats\" size=\"-1\" color=\"$couleurPoliceResultats\">\n");
 print("Vous avez activé la recherche sans avoir préalablement saisi votre requête.<br>");
 print("<a href=\"moteured.php\">Cliquez ici</a> pour effectuer une nouvelle recherche.<br>\n");
 print("</font>\n");
 print("</center>\n");
}

else {

// *******************************************************************************
// Cas de figure où l'utilisateur a bien saisi une requête
// *******************************************************************************

 // *******************************************************************************
 // Analyse de la requête et préparation de la recherche. La requête (entrée par
 // l'utilisateur dans la valeur $requete) est décomposée en une série de mots clés,
 // stockés dans les tableaux $expressions et $motsCles
 // *******************************************************************************

 // === Premier nettoyage de la requête formulée par l'utilisateur ===

 $requete=trim(stripslashes($requete));

 // ***************************************************
 // === Extraction des expressions entre guillemets ===
 // ***************************************************

 $requete1=$requete;

 $expressions[]="Liste des expressions";

 while($testExpress=ereg("[\"]([^\"]+)[\"]",$requete1,$corresExpress)) {
$exp=$corresExpress[1];
$expressions[]=$exp;
$requete1=ereg_replace($corresExpress[0],"",$requete1);
 }

 $nombreExpressions=count($expressions)-1; // Nombre d'expressions à analyser

 // ********************************
 // === Extraction des mots-clés ===
 // ********************************

 // === Définition de la fonction netGuil,
 // utilisée pour le nettoyage des termes
 // isolés compris entre guillemets ===

 function netGuil($term) {
if(ereg("^[\"]*([^\"]+)[\"]*$",$term,$corres)) {
  $reps=$corres[1];
  return $reps;
}
else {
  return($term);
}
 }

 // === Stockage des valeurs dans le tableau $motsCles ===

 $requete2=$requete;

 $motsCles[]="Liste des mots-clés";

 $mot=trim(stripslashes(strtok($requete2," ")));
 if(!(ereg("[ ]".$mot."[ ]",$motsVides))) {
$motsCles[]=netGuil($mot);
 }
 while($mot=trim(stripslashes(strtok(" ")))) {
if($mot and (!(ereg("[ ]".$mot."[ ]",$motsVides)))) {
  $motsCles[]=netGuil($mot);
}
 }

 $nombreMotsCles=count($motsCles)-1;	   // Nombre de mots-clés à analyser


 // ********************************************************************************
****
 // Ouverture du fichier indexsite.dat et stockage des lignes dans le tableau $contenuIndex
 // ********************************************************************************
****

 $contenuIndex=file($fichierIndex);

 $nlignesIndex=count($contenuIndex);
 $nombreDocumentsIndexes=($nlignesIndex-1)/4;

 // ********************************************************************************
****
 // Stockage des données dans les tableaux $cheminDocument, $titreDocument,
 // $descriptionDocument, $texteDocument
 // ********************************************************************************
****

 for($compt=1;$compt<=$nombreDocumentsIndexes;$compt++) {
$cheminDocument[$compt]=trim(stripslashes($contenuIndex[(4*($compt-1))+1]));
$titreDocument[$compt]=trim(stripslashes($contenuIndex[(4*($compt-1))+2]));
$descriptionDocument[$compt]=trim(stripslashes($contenuIndex[(4*($compt-1))+3]));
$texteDocument[$compt]=trim(stripslashes($contenuIndex[(4*($compt-1))+4]));
 }

 // ***************************************************************************
 //		  ========================================================
 //		  === Lancement de la procédure d'évaluation des pages ===
 //		  ========================================================
 //
 // Chaque page est passée en revue et se voit attribuer des points
 // selon les règles suivantes :
 //
 // - 2 point si la requête (considérée comme expression) est présente dans le titre
 // - 1 point si la requête (considérée comme expression) est présente dans le texte indexé
 //
 // - 2 point par expression présente dans le titre
 // - 2 point par mot-clé présent dans le titre
 //
 // - 1 point par expression présente dans le texte indexé
 // - 1 point par mot-clé présent dans le texte indexé
 //
 // Note : une ou plusieurs expressions présentes donnent naturellement un meilleur
 // score à la page
 //
 // ***************************************************************************

 // Les différents documents indexés spnt passés en revue et analysés

 for($compt=1;$compt<=$nombreDocumentsIndexes;$compt++) {

$score[$compt]=0;

// === Recherche de la requête (considérée comme expression) dans le titre du document : 2 points
//if(eregi("(^|[ .,:;!?'()])".$requete."([ .,:;!?'()]|$)",$titreDocument[$compt])) $score[$compt]=$score[$compt]+2;

// === Recherche de la requête (considérée comme expression) dans le texte indexé : 1 points
if(eregi("(^|[ .,:;!?'()])".$requete."([ .,:;!?'()]|$)",$texteDocument[$compt])) $score[$compt]=$score[$compt]+1;


for($a=1;$a<=$nombreExpressions;$a++) {
// ===== Recherche des expressions =====

  // === Recherche de l'expression dans le titre du document : 2 points s'il y a correspondance
  if(eregi("(^|[ .,:;!?'()])".$expressions[$a]."([ .,:;!?'()]|$)",$titreDocument[$compt])) $score[$compt]=$score[$compt]+2;

  // === Recherche de l'expression dans le texte indexé : 1 point s'il y a correspondance
  if(eregi("(^|[ .,:;!?'()])".$expressions[$a]."([ .,:;!?'()]|$)",$texteDocument[$compt])) $score[$compt]=$score[$compt]+1;

}

for($b=1;$b<=$nombreMotsCles;$b++) {
// ===== Recherche des mots-clés =====

  if(eregi("([^*]*)[*]",$motsCles[$b],$corMotCle)) {

  // l'utilisateur a fait suivre le mot-clé d'une astérisque (il faut donc étendre la recherche)

	// === Recherche du mot-clé dans le titre du document : 2 points s'il y a correspondance
	if(eregi("(^|[ .,:;!?'()])".$corMotCle[1],$titreDocument[$compt])) $score[$compt]=$score[$compt]+2;

	// === Recherche du mot-clé dans le texte indexé : 1 point s'il y a correspondance
	if(eregi("(^|[ .,:;!?'()])".$corMotCle[1],$texteDocument[$compt])) $score[$compt]=$score[$compt]+1;

  }

  else {
   // le mot-clé ne comporte pas d'astérisque

	// === Recherche du mot-clé dans le titre du document : 2 points s'il y a correspondance
	if(eregi("(^|[ .,:;!?'()])".$motsCles[$b]."([ .,:;!?'()]|$)",$titreDocument[$compt])) $score[$compt]=$score[$compt]+2;

	// === Recherche du mot-clé dans le texte indexé : 1 point s'il y a correspondance
	if(eregi("(^|[ .,:;!?'()])".$motsCles[$b]."([ .,:;!?'()]|$)",$texteDocument[$compt])) $score[$compt]=$score[$compt]+1;

  }
}
 }

 // ********************************************************************************
****
 // Tri des résultats en vue de leur affichage :
 // Les pages seront affichées de la plus pertinente à la moins pertinente
 // ********************************************************************************
****

 // Détermination du score le plus élevé parmi toutes les pages analysées

 $HiScore=max($score);


 // TRI du tableau à l'aide de la fonction asort

 arsort($score);

 // Création du tableau $documentsCorrespondantsOrd
 $documentsCorrespondantsOrd[]=0;

 for(reset($score);$cle=key($score);next($score)) {
if(current($score)>0) {
  $documentsCorrespondantsOrd[]=$cle;
}
 }

 $nombreCorrespondances=count($documentsCorrespondantsOrd)-1;


 // ********************************************************************************
****
 // Les résultats sont affichés dans un tableau, dont les caractéristiques ont été
 // précisées en début de script.
 // Note : les pages sont affichées dans l'ordre décroissant de leur pertinence
 // ********************************************************************************
****

 print("<table width=\"$largeurTableau\" border=\"0\" align=\"center\"> \n");  // Début du code pour l'affichage du tableau
 print("<tr><td> \n");

 if($nombreCorrespondances<1) {
print("<center> \n");
print("<font face=\"$policeResultats\" color=\"$couleurPoliceResultats\" size=\"-1\"> \n");
print("Désolé, aucune page ne correspond à la recherche : '<b>$requete</b>'. <br><br> \n");
print("</font> \n");
print("</center> \n");
 }

 else {
if(@ !$p) $p=1;

if($nombreCorrespondances==1) {
  print("<font face=\"$policeResultats\" color=\"$couleurPoliceResultats\" size=\"-1\"> \n");
  print("La requête '<b>$requete</b>' a donné <b>1</b> résultat. <br>\n");
  print("</font> \n");
}

else {
  if($nombreCorrespondances>=$NombreRepMax) {
	print("<font face=\"$policeResultats\" color=\"$couleurPoliceResultats\" size=\"-1\"> \n");
	print("La requête '<b>$requete</b>' a donné plus de $NombreRepMax résultats. <br>\n");
	print("</font> \n");
	$nombreCorrespondances=$NombreRepMax;
  }

  else {
	print("<font face=\"$policeResultats\" color=\"$couleurPoliceResultats\" size=\"-1\"> \n");
	print("La requête '<b>$requete</b>' a donné <b>$nombreCorrespondances</b> résultats. <br>\n");
	print("</font> \n");
  }
}

print("<font face=\"$policeResultats\" color=\"$couleurPoliceResultats\" size=\"-1\"> \n");
print("Liste des pages <b>".$p."</b> à <b>".(min(($p+$NombreRepPages-1),$nombreCorrespondances))."</b> :<br><br>");
print("</font> \n");



for($compt=$p;$compt<=min(($p+$NombreRepPages-1),$nombreCorrespondances);$compt++) {
  print("<font face=\"$policeResultats\" color=\"$couleurPoliceResultats\" size=\"-1\"> \n");
  print("<b>$compt</b>. <a href=\"".$cheminDocument[$documentsCorrespondantsOrd[$compt]]."\"><b>".$titreDocument[$documentsCorrespondantsOrd[$compt]]."</b></a><br> \n");
  print($descriptionDocument[$documentsCorrespondantsOrd[$compt]]."<br><br> \n");
  print("</font> \n");
}

print("<center> \n");

if(($p-$NombreRepPages)>0) {
  print("<font face=\"$policeResultats\" color=\"$couleurPoliceResultats\" size=\"-1\"> \n");
  print("<a href=\"resultats.php?requete=".rawurlencode($requete)."&p=".($p-$NombreRepPages)."\"><< page précédente</a>   \n");
  print("</font> \n");
}

if($nombreCorrespondances>$NombreRepPages) {
  print("<font face=\"$policeResultats\" color=\"$couleurPoliceResultats\" size=\"-1\"> \n");
  for($a=1;$a<=(floor(($nombreCorrespondances-1)/$NombreRepPages)+1);$a++) {
	if((floor($p/$NombreRepPages)+1)==$a) {
	  print("$a   \n");
	}
	else {
	  @ print("<a href=\"resultats.php?requete=".rawurlencode($requete)."&p=".(($a-1)*$NombreRepPages+1)."\">$a</a>   \n");
	}
  }
  print("</font> \n");
}

if(($p+$NombreRepPages)<=$nombreCorrespondances) {
  print("<font face=\"$policeResultats\" color=\"$couleurPoliceResultats\" size=\"-1\"> \n");
  @ print("   <a href=\"resultats.php?requete=".rawurlencode($requete)."&p=".($p+$NombreRepPages)."\">page suivante >></a> \n");
  print("</font> \n");
}

print("</center> \n");
 }


 // **************************************************************************
 // Affichage du formulaire permettant d'effectuer une nouvelle recherche
 // **************************************************************************

 print("<form action=\"resultats.php\" method=\"post\"> \n");
 print("<table align=\"center\"> \n");
 print("<tr><td align=\"center\"> \n");
 print("<font face=\"$policeResultats\" color=\"$couleurPoliceResultats\" size=\"-1\"> \n");
 print("Effectuer une nouvelle recherche: <br> \n");
 print("</font> \n");
 print("</td></tr> \n");
 print("<tr><td align=\"center\"> \n");
 print("<input type=\"text\" name=\"requete\" size=\"20\"> \n");
 print("   ");
 print("<input type=\"submit\" value=\"Chercher\"> \n");

 print("</td></tr> \n");
 print("</table> \n");
 print("</form> \n");

 print("<center><font face=\"$policeResultats\" size=\"-2\" color=\"$couleurPoliceResultats\">Avec la complicité de <a href=\"http://www.echodelta.net/scriptsphp/moteured/\" target=\"_blank\">Moteur'Ed 1.0</a>, moteur de recherche interne en PHP.\n");

 print("</td></tr> \n");
 print("</table> \n");


 // **************************************************************************
 // Sauvegarde de la requête dans le fichier req.txt
 // **************************************************************************

 $idFiqReq=fopen("req.txt","a+");
 fputs($idFiqReq,$requete."\n");
 fclose($idFiqReq);
}

// ################################################################################
####
?>

<!- inserez la seconde partie de votre code html ici ->
<br></body></html


</body>
</html>

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...