TUTORIELS 

Cas pratique : un moteur de recherche en Php.
Seconde partie : Interface et poids des mots(1/2)
Dans cette seconde partie de notre série consacrée à un "moteur de recherche" en Php, nous améliorons la gestion du poids des mots et offrons une "interface" d'indexation à notre moteur.  (23 janvier 2002)
 

Pages 1 | 2


Résumons l'épisode précédent : nous avons conçu un script Php capable d'indexer le contenu d'un fichier HTML référencé "en dur" au sein du code source. Une table SQL a été construite,elle se nomme "moteur" et voici pour rappel les champ qu'elle contient :

- "id", la clef primaire...
- "mot"
- "occurence", stocke le nombre d'apparition du mot dans le fichier concerné
- "origine" emplacement du fichier concerné
- "titre_page"

Si les trois premiers champs sont évidents, on peut rappeler l'utilité des deux derniers. Il s'agit pour le champ "origine" d'indiquer d'où vient le fichier. Deux fichiers peuvent en effet porter le même nom, il va donc falloir les dissocier du point de vue de leur arborescence.
Enfin, "titre_page" permettra d'identifier une page lorsqu'elles seront affichées comme résultats d'une recherche.

Le programme du jour est le suivant :

- Construire une interface rudimentaire afin d'indexer un fichier plus simplement (c'est à dire sans avoir besoin de rentrer son nom en dur dans le code source).
- Repérer les mots contenus dans les balises <TITLE></TITLE> et leur appliquer un poids "+ 10" pour marquer leur importance par rapport aux autres mots.
- Renseigner le champ "titre" de la table "moteur".

Note : les fonctions Php déjà utilisées lors du premier tutoriel ne referont pas l'objet ici d'une explication détaillée. Le code source complet (à ce stade du développement) sera fourni en fin de tutoriel



Construction de l'interface

Celle-ci doit nous permettre de parcourir l'arborescence de notre disque et de choisir un fichier à indexer. Cette solution ne représente toujours pas la panacée mais elle a le mérite d'être dynamique, c'est un pas en avant par rapport au script du premier tutoriel qui spécifiait en dur le nom du fichier à indexer.

Ce type de fonctionnalités se rencontre le plus souvent sur le web lorsque vous avez à uploader un fichier quelconque, nous nous inspirons de ce type d'interface.

Schématiquement nous allons désormais dissocier deux cas dans notre script Php :

Faut-il entamer les traitements Php et indexer le fichier ou afficher l'interface "parcourir" qui va permettre de choisir le fichier en question ?

Nous allons procéder de la sorte :

(find_title.php)
if (isset($passtwo))
{
    // Traitements Php...

}
else
{
      ?>
          // Tient en une ligne normalement :
          <form name="browse" action="find_title.php"
                 method="post" enctype="multipart/form-data">
          <input type="file" name="nomfichier" size="100">
          <input type="hidden" name="passtwo" value="1">
          <input type="submit" value="Indexer">
          </form>
     <?
}

Lorsque vous exécutez pour la première fois ce script, vous avez la possibilité de parcourir votre disque afin de désigner le fichier à indexer.
Une fois votre choix effectué le nom du fichier choisi apparaît dans le champ du formulaire. Ce dernier contient une variable de type "hidden", elle se nomme "passtwo" et a pour seul intérêt de permettre de détecter que le formulaire a été posté.
En effet, la page s'auto-envoie les données du formulaire, comme cela est définit dans le champ "action" de celui_ci.

Lorsque la page est soumise, le champ de type "hidden" est détecté, via la fonction isset(), les traitements Php vont pouvoir commencer.


Pages 1 | 2

 
[ Arnaud GadalJDNet
 
Accueil | Haut de page