Designed by Vince El Roubio !
55 en ligne   Boutique | Sites | Bar | Forum | PhpBB | Actu | Glossaire | Codes | Tips | Liens | Livres | Lettre  


 Recherche

 NewsLetter






   

Recherche (1/2)

Permettre à vos visiteurs de chercher sur le site





Didier
Suite à de nombreuses questions sur le sujet, quelques pistes pour créer un mini-moteur de recherche sur votre site... Il y a deux possibilités : soit votre site est construit autour d'une base de données et là, c'est assez facile... soit il ne l'est pas et il va falloir alors analyser la source de chacune des pages pour répondre à la recherche ! Dans les deux cas, le visiteur tapera sa requête dans un petit formulaire. Exemple

Page 1  2  SUITE >> 
Avant tout, le plus simple, si votre site est bien
référencé, est de filer le bébé à Google :)
Exemple (à améliorer bien sûr)
<table><tr>
   <form target=_blank action=http://www.google.com/search>
   <td><input name=q>
      <input type=hidden name=q value=site:asp-php.net></td>
   <td><input type=submit value=Rechercher></td>
</form></tr></table>


Le formulaire

Il peut être sur n'importe quelle page, voire sur toutes et renvoyer à la page "Recherche"... il peut aussi afficher la dernière requête (mémorisée dans un cookie) :



<table border=0 cellspacing=0 cellpadding=0><tr>
   <form method="post" action="recherche.asp">
      <td><input name="search"
         value="<%=request.cookies("search")%>"></td>
      <td><input type="submit" value="Chercher"></td>
   </form>
</tr></table>

et en haut de "recherche.asp"
<% search=request.form("search")
if search<>"" then
   response.cookies("search")=search
   response.cookies("search").expires=date+365
end if%>

 


<table border=0 cellspacing=0 cellpadding=0><tr>
   <form method="post" action="recherche.php">
      <td><input name="search"
         value="<? echo $cooksrch; ?>"></td>
      <td><input type="submit" value="Chercher"></td>
   </form>
</tr></table>

et en haut de "recherche.php"
<?
if(isset($search)) {
   $duree = 365*24*60*60; // 1 an en secondes !
   setcookie("cooksrch",$search,time()+$duree);
   Header("Location: recherche.php");
} ?>


La chaîne de recherche

Les visiteurs tapent en général soit un mot, soit plusieurs séparés par un espace ou par un +... on va donc la nettoyer un peu...:o)


dans recherche.asp
<% cooksrch=request.cookies("search")
if cooksrch<>"" then
   ' on transforme les + en espaces
   search2 = replace(cooksrch,"+"," ")
   ' on vire les espaces de début et de fin
   search2 = trim(search2)
   ' on vire les double-espaces
   while instr(search2,"  ") > 0
      search2 = replace(search2,"  "," ")
   wend
end if%>

 


dans recherche.php
<? // on lit donc le cookie...
if(isset($cooksrch)) {
   // on transforme les + en espaces
   $search2 = str_replace("+"," ",$cooksrch);
   // on vire les espaces de début et de fin
   $search2 = trim($search2);
   // on vire les double-espaces
   while(strpos($search2,"  ")) {
      $search2 = str_replace("  "," ",$search2);
   }
} ?>


Supprimer les balises

Dans vos news (et évidemment dans le cas 2) les balises HTML éventuelles doivent être retirés du texte pour afficher le résumé... alors petite fonction de nettoyage :


dans recherche.asp
<%
Function notag(txt)
   dim regEx,temp
   Set regEx = New RegExp
   regEx.Global = True
   regEx.Pattern = "<[^>]+>"
   temp = regEx.REPLACE(txt,"")
   ' supprime aussi les retours
   temp = replace(temp,VbCrLf," ")
   ' et les espaces doubles
   while instr(temp,"  ") > 0
      temp = replace(temp,"  "," ")
   wend
   notag = temp
end function
%>

 


dans recherche.php
<?
Function notag($txt) {
   $pattern = "<[^>]+>";
   $temp=ereg_replace($pattern,"",$txt);
   // Supprime aussi les retours
   $temp=str_replace("\n"," ",$temp);
   // et les espaces doubles
   while(STRPOS($temp,"  ")) {
      $temp = STR_REPLACE("  "," ",$temp);
   }
   return($temp);
}
?>

Page 1  2  SUITE >> 

Pour pouvoir écrire dans ce forum, identifiez-vous !

 Lire  05/02/10 10:07 de samuelsamba
je cherche a creer un moteur de recherche et de resul...
  • 06/02/10 07:37 de DB77 Tu peux étudier mon tuto : http://www.asp-...
  •   v1.3p © ASP-PHP.net 2002  

    Didier le 21/01/2009 (338 711 hits)
    Didier Téléchargez gratuitement et légalement des logiciels Microsoft ! Si, si ;)
    • Visual Studio 2010
    • Office 2010
    • Expression Studio 3
    • SQL Server 2008
    • et d'autres...
    Au fil des news  
    Magazines - Le N°128 de Programmez est disponible
    Magazines - Le N°127 de Programmez est disponible
    Dreamweaver CS4 + Php + Mysql - Trucs et Astuces - Part 6
    Pour continuer dans le même style, je vous propose une suite au précédent article. Rechercher tous ...
    Adobe - Adobe Photoshop.com Mobile pour iPhone 1.1
    JavaScript - Ajouter une page dans vos favorites
    Dreamweaver CS4 + Php + Mysql - Trucs et Astuces - Part 5 -
    Je vous propose cette fois deux astuces. Comment exporter une feuille de style avec l'aide de ...
    SharePoint Personalization Site Links - Les liens personnalisés des MySite SharePoint
    Nous avons vu dans les articles précédents comment agrémenter les pages de recherche afin de ...
    Magazines - Le n°126 de Programmez est disponible
    Outils - Traducteur en ligne automatique pour site web
    Adobe - Adobe Photoshop.com Mobile pour Iphone
    Magazines - Le n°125 de Programmez est disponible
    Adobe - Adobe AIR 2 et Flash Player 10.1version bêta
    Les conférences autour des technologies Microsoft - Liste non exhaustive des grands évènements
    Nous allons essayer de regrouper un grand nombre des évènements autour des technologies Microsoft ...
    Magazines - Le n°124 de Programmez est disponible
    PHP - Forum PHP 2009
    Composants - eFace - XAML en Java
    WPF - Désactiver le bouton de réduction d'une fenêtre
    Magazines - Le n°123 de Programmez est disponible
    Magazines - Le n°122 de Programmez est disponible
    Auditer une ferme SharePoint - Assurer le bon fonctionnement de SharePoint
    Dans le cadre de la bonne gestion de son environnement SharePoint, il est utile de faire un ...
    SQL Server 2008 Report Builder 2.0 - Installation et utilisation de Report Builder 2.0
    Dans le cadre de la création de rapports pour SQL Server Reporting Services 2008, un outil est ...
    Magazines - Le HS N° 1 de Web Design est disponible
    Adobe - Adobe propose en Open Source les frameworks.....
    Outils - EntityBuilder
    CSharp - Sérialisation XML de vos objets
    Magazines - Le n°121 de Programmez est disponible
    Adobe - Adobe annonce MAX 2009 !
    Outils - WhoIs
    [MAJ] Dreamweaver MX + Php + MySql - Les formulaires - partie 3
    Mise à jour du code, par DB 77, affichage du code erreur, dans la page erreur.php, traduction des ...
    PHP - News avec photo - Système de gestion - affichage
    Gestion - Administration - Affichage d'une "News", "Actualité", "Info", ... avec : - mise en forme ...
    Outils - Crypt
    Dreamweaver Php Mysql - Région répétée imbriquée
    Je rebondis, sur un post du forum, pour vous montrer comment obtenir grâce à l'extension Simulated ...
    Magazines - Le n° 120 de Programmez est disponible
    Gérer les bases de contenu SharePoint - Gérer la croissance du volume des données
    Dans le cadre de la gestion quotidienne de ferme SharePoint, il existe une partie qu'il faut ...
    PHP - Le Coach PHP sur Visual Studio
    .NET - Ecrire une application .NET utilisant MySQL
    PHP - Utilisation de PHP dans le monde Microsoft
    Magazines - Le n° 119 de Programmez est disponible
    Adobe - Adobe annonce Photoshop Marketplace
    [MAJ] Tutoriel AJAX simple - En avant vers le WEB2.0
    Mis à jour le 20/04/2009
    Tutorial : HTML | Scripting | ASP-PHP | ASP.net | SQL Server | XML
    Sharepoint | XAML | Pocket | Dreamweaver | VML | Divers
      Scripts : Scripting | ASP-PHP | ASP.net | Divers
      Boutique | Annuaire | Bannières | Météo | Tribune | Partenariats
    v3b © Didier 2003   
     

    Corpo Sciences de Reims Partitions gratuites Carte, météo, annonces
     DotNet Project MVP Groupes Utilisateurs Microsoft TechNet ASP-magazine