PhpDig : Documentation
h1 { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 18pt; font-weight: normal}
h2 { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14pt; font-weight: normal}
body { font-family: Verdana, Arial, Helvetica, sans-serif; color: #000000; font-size: 10pt; background-color: #FFFFFF;}
a { font-family: Verdana, Arial, Helvetica, sans-serif; color: #004488; text-decoration: none; font-size: 10pt}
a:hover { font-family: Verdana, Arial, Helvetica, sans-serif; color: #FFFFFF; background-color: #004488; font-size: 10pt}
a.high { font-family: Verdana, Arial, Helvetica, sans-serif; color: #000000; background-color: #FFCC55; text-decoration: none; font-size: 10pt; font-weight: bold;}
a.high:hover { font-family: Verdana, Arial, Helvetica, sans-serif; color: #FFFFDD; background-color: #003060; font-size: 10pt;}
.grey {padding:5px;
margin-top:8px;
margin-bottom:18px;
margin-right:32px;
border:2px dotted #BBBBBB;
background-color:#EEEEEE;}
.blue {background-color:#CCDDFF;
margin-top:8px;
margin-bottom:8px;
margin-right:32px;
padding:3px;
border-top:1px solid #7688A7;
border-bottom:1px solid #7688A7;
}
Documentation de PhpDig 1.6.2
DerniŁre mise ą jour : 2003-04-06
1. Table des matiŁres
1. Table des matiŁres2. Oł trouver la derniŁre version de PhpDig ?3. Fonctionnalits4. Installation5. Configuration6. Mise ą jour de PhpDig7. Indexation par l'interface web8. Indexation en ligne de commandes9. Les templates10. Intgrer PhpDig ą un site web11. Fonctionnement interne de PhpDig12. Obtenir de l'aide sur PhpDig
2. Oł trouver la derniŁre version de PhpDig ?
A l'url : http://phpdig.toiletoine.net/
3. Fonctionnalits
3.1. Exploration HTTP
PhpDig suit les liens contenus dans les documents fournis par un serveur web,
comme n'importe quel navigateur, afin de constituer sa liste de pages ą indexer.
Les liens peuvent ętre contenus dans des AreaMap, rsulter d'une redirection, ou ętre
contenus dans des frames. Toute criture, męme approximative, des liens HREF est supporte.
Les liens en javascript simple comme window.open() et window.location() sont dtects.
PhpDig ne suit pas les liens externes au site dfini comme racine lors de la recherche (Cependant, voir plus bas : Indexation de domaine).
La profondeur de recherche dans le site peut ętre paramtre.
Tout le contenu html servi par le site distant est parcouru,
que ce soit du html simple, ou des pages cres dynamiquement.
PhpDig se base sur le Mime-Type pour dterminer quel est
le type du document.
3.2. Indexation Full Text
PhpDig indexe exhaustivement les mots contenus dans un document,
excepts ceux de moins de 3 lettres (par dfaut), et ceux contenus
dans une liste de mots considrs comme courants.
Les nombres seuls ne sont pas indexs. En revanche, les mots contenant des
chiffres le sont. Les underscores dans les mots sont considrs faisant partie
des mots, comme des noms de fonctions dans une documentation technique.
Le nombre d'occurences d'un mot dans une page est conserv dans
l'index pour une meilleure pertinence des rsultats.
Les mots du titre des pages peuvent ętre pondrs.
3.3. Types de fichiers pouvant ętre indexs
PhpDig indexe nativement les fichiers HTML et texte.
De plus, PhpDig est capable d'indexer les fichiers PDF, MS-Word et
MS-Excel si vous installez sur la machine qui effectue l'indexation
des excutables externes capables d'extraire le contenu textuel
de ces documents.
PhpDig est configur pour utiliser les utilitaires catdoc,
xls2csv et pstotext.
Vous trouverez catdoc et xls2csv ą cette adresse :
http://www.45.free.net/~vitus/ice/catdoc/. Choisissez la
version 0.91.5. La version dite "stable" n'extrait pas correctement
le contenu des fichiers et ne contient pas le programme xls2csv.
Vous trouverez pstotext ą cette adresse :
http://research.compaq.com/SRC/virtualpaper/pstotext.html.
Aucun support n'est fourni par l'auteur sur ces outils. Veuillez vous
adresser en cas de problŁme de compilation ou d'utilisation aux auteurs
respectifs de ces programmes.
Cependant, rien ne vous empęche d'utiliser d'autres excutables en
renseignant correctement les constantes appropries dans le fichier de
configuration.
Le format de sortie doit imprativement ętre du texte brut.
3.4. Autres fonctions
PhpDig prend en compte un ventuel fichier robots.txt contenant les
chemins des rpertoires ą exclure de l'indexation. Les balises meta robots sont
aussi examines.
PhpDig peut indexer des sites situs sur un port diffrent du port 80 par
dfaut.
On peut spcifier un nom et un mot de passe au robot pour
indexer les sites protgs par mot de passe.
Attention ! Cette derniŁre fonction peut permettre ą des personnes
non autorises de lire des informations protges. Il est recommand de
crer une instance spcifique de PhpDig, protge par les męmes droits
d'accŁs que le site restreint, ainsi que de crer un compte pour le robot
lui-męme.
Si le serveur renvoie un header Last-Modified, la valeur est mmorise afin de
ne pas effectuer de rindexation inutile.
La balise <META> revisit-after est galement prise en compte pour la
mise ą jour de l'index.
Si le moteur est configur pour le faire, les rsultats affichent un extrait
des pages trouves, contenant les termes de recherche surligns ou mis en gras.
3.5. ModŁles de prsentation
Un systŁme simple de modŁles permet de personnaliser facilement la page de recherche
et de rsultats. Il suffit d'insrer quelques balises spcifiques dans une page statique
servant de modŁle.
3.6. Limitations
PhpDig ne gŁre pas la recherche par expression exacte. Cela impliquerait un index au moins
de la taille des documents indexs (ce qui n'est pas le but),
sans compter le ralentissement de la recherche.
Les instances de Php qui ralisent l'indexation ne peuvent ętre configurs en safe_mode,
sans quoi la limite de temps des scripts empęcherait le moteur de fonctionner.
Cette limite est toutefois contournable de deux maniŁres : Soit en utilisant la possibilit
d'indexation distante (par les connexions TCP mysql et FTP), soit en lanant l'indexation
en ligne de commande sur le serveur, ventuellement par une tche cron.
L'indexation est relativement lente. En revanche, la recherche, męme sur un contenu
assez tendu, reste suffisament rapide pour ne pas gęner l'utilisateur.
4. Installation
4.1. Pr - Requis
PhpDig ncessite un serveur web (Apache a ma prfrence) dot de Php,
et d'un serveur de bases de donnes MySql.
Les configurations suivantes ont t testes :
Php/4.1.1, Apache/1.3.20 (Win32), Windows 2000 ;
Php/4.1.2, Apache/1.3.23 (Unix) mod_ssl/2.8.7, Linux noyau 2.4.3 ;
Php/4.3.0, Apache/2.0.44 (Unix) OpenSSL/0.9.6g, Linux noyau 2.4.18;
Php/4.3.1, Apache/2.0.44 (Win32), Windows 2000 .
4.2. Installation des scripts
Il suffit de dplier le fichier d'archive dans un rpertoire de votre choix.
(qui sera dsign ultrieurement par [PHPDIG_DIR]
Il n'est pas ncessaire de crer un VirtualHost Apache pour le moteur.
Vrifiez par la męme occasion, si vous ętes sous un systŁme Unix,
que L'utilisateur sous lequel est lanc le serveur Apache ait le
droit d'crire dans les rpertoires :
[PHPDIG_DIR]/text_content
[PHPDIG_DIR]/include
[PHPDIG_DIR]/admin/temp
4.3. Installation de la base MySql
Deux mthodes sont possibles pour installer la base.
Script php d'installation :
Dans votre navigateur, appelez le script
[PHPDIG_DIR]/admin/install.php
Et suivez les instructions.
Choisissez notamment si vous dsirez crer la base de donnes, ou
uniquement les tables ; ou si vous dsirer mettre ą jour une base de
donnes de la version prcdente de PhpDig.
Le script utilise les informations pour renseigner les champs du fichier
"[PHPDIG_DIR]/include/_connect.php" et pour en faire une copie sous le nom
"[PHPDIG_DIR]/include/connect.php".
Installation manuelle :
Il vous faut crer la base mysql (il n'est pas obligatoire de la nommer
"phpdig") :
#mysql mysql
mysql> CREATE DATABASE phpdig;
mysql> quit
#mysql phpdig < [PHPDIG_DIR]/sql/init_db.sql
Vrifiez l'existence de toutes les tables :
#mysql phpdig
mysql> SHOW TABLES;
La base de donne doit vous rpondre :
+------------------+
| Tables_in_phpdig |
+------------------+
| engine |
| excludes |
| keywords |
| logs |
| sites |
| spider |
| tempspider |
+------------------+
7 rows in set (0.00 sec)
mysql>
Une fois la base cre, copiez le fichier "[PHPDIG_DIR]/include/_connect.php"
vers le fichier "[PHPDIG_DIR]/include/connect.php" et ditez ce dernier.
Remplacez les valeurs "<host>", "<user>", "<pass>",
et "<database>" respectivement par l'URL de votre serveur MySql, le nom
d'utilisateur, son mot de passe, et le nom que vous avez donn ą la base de
donnes.
Si vous dsirer prfixer chaque table par une chane de
caractŁre de votre choix, remplacez "<dbprefix>" par la chane
et modifiez le nom des champs dans une interface MySql.
Si ce n'est pas le cas, mettez une chane vide.
Sur une installation locale, gnralement les valeurs
"localhost", "root", et "" sont suffisantes pour la connexion.
Vous pouvez vrifier que l'installation s'est bien droule en ouvrant la
page principale [PHPDIG_DIR]/index.php.
Le formulaire de recherche doit s'afficher.
5. Configuration
DŁs l'tape d'installation franchie, le moteur est oprationnel.
L'tape de configuration est optionnelle et dpend de vos besoins.
N'oubliez pas de modifier le login et le mot de passe d'administration
si vous utilisez Php compil en module d'apache ou en module statique.
Note : l'authentification ne fonctionne pas avec php utilis en CGI. Dans
ce cas, utilisez un fichier .htaccess pour protger le rpertoire
[PHPDIG_DIR]/admin
Tous les paramŁtres de configuration se trouvent dans le fichier
[PHPDIG_DIR]/include/config.php.
Chaque paramŁtre fait l'objet d'un commentaire explicitant son utilisation.
Dans les parties suivantes consacres ą la configuration, les lignes de code
se rapportent toutes au fichier config.php.
Les valeurs indiques sont
les valeurs dfinies par dfaut.
5.1. Configuration de l'accŁs ą l'administration
Modifiez les constantes suivantes. Si vous ne voulez pas
que le mot de passe apparasse en clair quelque part, utilisez les
fonctions d'authentification d'apache.
define('PHPDIG_ADM_AUTH','1'); //active ou non l'authentification
define('PHPDIG_ADM_USER','admin'); //Nom d'utilisateur (login)
define('PHPDIG_ADM_PASS','admin'); //Mot de passe pour l'accŁs
5.2. Configuration du robot et du moteur
Modifiez les variables et constantes suivantes.
define('SPIDER_MAX_LIMIT',12); //Profondeur maximale slectionnable pour l'indexation
define('SPIDER_DEFAULT_LIMIT',1); //Valeur slctionne par dfaut dans le formulaire
define('RESPIDER_LIMIT',4); //Profondeur pour les mises ą jour
define('LIMIT_DAYS',7); //Nombre de jours par dfaut avant de revisiter une page
define('SMALL_WORDS_SIZE',2); //Taille des mots ą ne pas indexer
define('MAX_WORDS_SIZE',30); //Taille maximale possible d'un mot
define('PHPDIG_EXCLUDE_COMMENT','<!-- phpdigExclude -->');
//commentaire HTML pour exclure une partie
//de page
define('PHPDIG_INCLUDE_COMMENT','<!-- phpdigInclude -->');
//commentaire HTML pour arręter l'exclusion
//d'une partie de page
define('PHPDIG_DEFAULT_INDEX',true); //phpDig considŁre /index et /default
//html, htm, php, asp, phtml comme tant
//la męme url que '/'
define('PHPDIG_SESSID_REMOVE',true); // enlŁve les SIDS des urls stockes
define('PHPDIG_SESSID_VAR','PHPSESSID');// nom de la variable SID
define('TITLE_WEIGHT',3); //Poids des mots du titre par rapport aux autres mots
define('CHUNK_SIZE',2048); //Taille du dcoupage pour le traitement des pages
(ce paramŁtre ne ncessite pas d'ętre modifi)
define('SUMMARY_LENGTH',500); //Longueur de texte pour le rsum des pages
define('TEXT_CONTENT_PATH','text_content/'); //rpertoire des fichiers de contenu textuel
define('CONTENT_TEXT',1); //Active ou non le stockage des fichiers de contenu.
define('PHPDIG_IN_DOMAIN',false); //Permet ą PhpDig de suivre les
//liens interne au domaine
//si vous indexez "www.mondomaine.tld",
//le domaine est "mondomaine.tld"
5.3. Configuration de l'encodage utilis
Modifiez la constante suivante. Notez que PhpDig ne supporte
pas les encodages multiples : Les paramŁtres suivant s'appliquent
ą tous les documents indexs ainsi qu'ą l'interface.
define('PHPDIG_ENCODING','iso-8859-1'); // iso-8859-1 et iso-8859-2 supports
Pour permettre ą PhpDig de supporter des encodages supplmentaires,
il vous faut rajouter des index de tableaux aux variables suivantes,
en vous basant sur les index existants.
$phpdig_string_subst['iso-8859-1']
$phpdig_string_subst['iso-8859-2']
...
$phpdig_words_chars['iso-8859-1']
$phpdig_words_chars['iso-8859-2']
...
5.4. Configuration des excutables externes
Chaque outil externe est dfini par trois constantes :
- INDEX (true ou false) : Active l'indexation de ce type de document ;
- PARSE (chemin) : Chemin de l'excutable traitant ce type de document ;
- OPTION (options) : Options ą passer ą l'excutable.
define('PHPDIG_INDEX_MSWORD',true);
define('PHPDIG_PARSE_MSWORD','/usr/local/bin/catdoc');
define('PHPDIG_OPTION_MSWORD','-s 8859-1');
define('PHPDIG_INDEX_PDF',true);
define('PHPDIG_PARSE_PDF','/usr/local/bin/pstotext');
define('PHPDIG_OPTION_PDF','-cork');
define('PHPDIG_INDEX_MSEXCEL',true);
define('PHPDIG_PARSE_MSEXCEL','/usr/local/bin/xls2csv');
define('PHPDIG_OPTION_MSEXCEL','');
5.5. Configuration du modŁle pour les rsultats
Modifiez les variables et constantes suivantes.
$phpdig_language = "en"; //langue de l'interface
$template = "$relative_script_path/templates/phpdig.html";
//chemin du fichier de modŁle
define('HIGHLIGHT_BACKGROUND','yellow'); //Couleur de fond du surlignage
//Seulement en mode 'classic'
define('HIGHLIGHT_COLOR','#000000'); //Couleur du texte surlign
//Seulement en mode 'classic'
define('LINK_TARGET','_blank'); //Target pour les liens de rsultats
define('WEIGHT_IMGSRC','./tpl_img/weight.gif'); //chemin de l'image servant de baragraph
define('WEIGHT_HEIGHT','5'); //hauteur du baragraph
define('WEIGHT_WIDTH','50'); //largeur maximale du baragraph (pour 100%)
define('SEARCH_PAGE','index.php'); //Nom de la page de recherche
define('SUMMARY_DISPLAY_LENGTH','150'); //Nombre de caractŁres dans
//la description
define('DISPLAY_SNIPPETS',true); //Affiche les extraits
define('DISPLAY_SNIPPETS_NUM',4); //Nombre maximum d'extraits
define('DISPLAY_SUMMARY',false); //Affiche la description
define('PHPDIG_DATE_FORMAT','\1-\2-\3'); // Format de la date affiche
// \1 est l'anne, \2 le mois et
// \3 le jour
define('SEARCH_DEFAULT_LIMIT',10); //resultats par page par dfaut
define('SEARCH_DEFAULT_MODE','start'); //mode de recherche par dfaut (start|exact|any)
5.6. Configuration FTP (si ncessaire)
A quoi diable peut-donc servir une connexion ftp dans PhpDig si
il n'indexe pas les sites FTP ?
Beaucoup d'utilisateurs de installent PhpDig sur des serveurs mutualiss, et
sur ces dernier, Php est toujours configur en safe_mode. PhpDig ne peut effectuer
d'indexation en safe_mode, et dans le cas des hbergements mutualiss, l'accŁs aux
tches cron est bien entendue exclue.
La solution est d'avoir une instance Php sur une autre machine. Dans mon cas,
c'est une machine Linux ą mon domicile, branche sur une connexion ą haut dbit
qui effectue ce travail.
Votre hbergement doit toutefois vous autoriser ą vous connecter en TCP/IP
ą votre serveur de bases de donnes MySql.
Et le FTP dans tout a ? Il sert ą envoyer au serveur les fichiers de contenu
textuel qui permettent d'afficher des extraits pertinents des documents trouvs
dans les pages de rsultat.
Si vous dsactivez la fonction FTP lors d'une indexation distante, les rsultats
afficheront l'ancienne version de l'extrait ou les premiers mots du documents
stocks dans la base MySql, selon que le fichier de contenu existe ou non sur
le serveur.
Les paramŁtres concerns sont les suivants.
define('FTP_ENABLE',0); //Activation ou non de la connexion FTP
define('FTP_HOST','<ftp host dir>'); //nom du serveur FTP
define('FTP_PORT',21); //port ftp
define('FTP_PASV',1); //utiliser le mode passif (conseill)
define('FTP_PATH','<phpdig root dir>'); //chemin du rpertoire de phpdig sur le serveur ftp
define('FTP_TEXT_PATH','text_content'); //rpertoire des fichiers de contenu (default)
define('FTP_USER','<ftp username>'); //utilisateur du compte FTP
define('FTP_PASS','<ftp password>'); //mot de passe pour le compte FTP
6. Mise ą jour de PhpDig
6.1. Mise ą jour de la base de donnes
Le script sql [PHPDIG_DIR]/sql/update_db_to[version].sql contient
les instructions SQL ncessaires pour mettre ą jour votre installation
existante, version par version.
Vous pouvez galement utiliser l'interface d'installation en choississant
l'option de mise ą jour de la base. Cette fonction n'opŁre que pour la
version immdiatement prcdente de la base de donnes.
6.2. Mise ą jour des scripts
Remplacez les anciens scripts par les nouveaux, en ayant pralablement
effectu une sauvegarde de votre configuration.
7. Indexation par l'interface web
7.1. Indexer un nouveau site
A partir de l'interface d'administration [PHPDIG_DIR]/admin/index.php, un champ
de formulaire vous permet de renseigner un site ą indexer. Vous pouvez galement
indiquer un chemin et/ou un fichier ą partir duquel le robot va commencer son
indexation.
Spcifiez une profondeur de recherche (combien de niveaux de liens va suivre le
robot avant d'arręter son indexation, et cliquez sur le bouton [dig this!].
Une page s'ouvre montrant le processus de recherche de liens et d'indexation.
Une page correctement indexe est marque d'un coche vert. Les '+' indiquent les
nouveaux liens trouvs ą partir de cette page.
L'indication "doublon avec une page existante" indique que malgr une URL diffrente,
la page que PhpDig vient de trouver est identique ą une autre page dją indexe.
A la fin de l'indexation, une liste rcapitule tous les liens trouvs par PhpDig.
7.2. Mettre ą jour un site
Dans l'interface d'administration, une liste des sites dją indexs permet de
les mettre ą jour : Slectionnez l'un des sites et cliquez sur le bouton
[update form].
Une interface ą deux volets s'affiche. A gauche se trouve une liste des branches
du site index, ą droite s'affiche la liste des fichiers d'une branche si on clique
sur la flŁche bleue situe ą droite de chacune des branches.
Pour les deux volets, la croix rouge supprime la branche ou le fichier slectionn,
le coche vert force la rindexation de la branche ou de la page ainsi que la
recherche de nouveaux liens sur une profondeur dfinie par le paramŁtre
RESPIDER_LIMIT.
7.3. Maintenance du moteur
Trois liens situs en bas de l'interface d'administration permettent de nettoyer
la base de donne des enregistrements inutiles ou corrompus.
Le lien Nettoyer l'index supprime les entres d'index qui sont ne sont plus
lies ą aucun mot-clef.
Le lien Nettoyer les mots-clefs supprime les entres de mots-clefs qui ne
sont plus lies ą aucune entre d'index. Ce lien permet de minimiser la
taille de la table des mots-clefs aprŁs de nombreuses indexations et mises
ą jour.
Le lien Nettoyer les mots courants supprime les entres d'index et de mots-clefs
devenues inutiles suite au rajout de mots dans le fichier des mots courants
[PHPDIG_DIR]/includes/common_words.txt.
8. Indexation en ligne de commandes
Le script [PHPDIG_DIR]/admin/spider.php peut ętre
lanc en ligne de commande afin de ne pas charger le serveur web.
Le script se lance ainsi :
#php -f [PHPDIG_DIR]/admin/spider.php [option]
Les options sont les suivantes :
- all (par dfaut) : Met ą jour tous les sites ;
- forceall : Met ą jour tous les sites de maniŁre force;
- http://mondomaine.tld : ajoute ou met ą jour l'url ;
- path/file : ajoute ou met ą jour les urls contenues dans le fichier spcifi.
Exemples d'utilisation :
#php -f [PHPDIG_DIR]/admin/spider.php http://hote.mondomaine.com
#php -f [PHPDIG_DIR]/admin/spider.php [Fichier contenant une liste d'urls]
Comme pour n'importe quelle commande, la sortie peut ętre redirige
vers un fichier (pour tenir des logs par exemple.)
#php -f [PHPDIG_DIR]/admin/spider.php all >> /var/log/phpdig.log
Le script [PHPDIG_DIR]/admin/spider.php peut galement ętre
programm en tche cron afin de procder automatiquement
ą la mise ą jour du moteur. La priodicit conseille est
de 7 jours, quitte ą forcer la rindexation par l'interface web
des pages devant figurer dans le moteur immdiatement.
Ces derniŁres peuvent galement comporter un Metatag
"revisit-after" spcifique.
9. Les templates
9.1. Gnralits
Les templates consistent en fichiers html dans lesquels quelques
balises de style xml permettent de placer le contenu dynamique.
Les modŁles fournis permettent de donner une petite ide de la
faon dont les pages de rsultat peuvent ętre personnalises.
Le couple de balises <phpdig:results></phpdig:results> sert
au tableau de rsultats : Tout le contenu situ entre ces deux balises
sera rpt autant de fois qu'il y a de rsultats de recherche dans la
page.
Deux classes CSS sont utilises par PhpDig dans les templates:
.phpdigHighlight : Classe de niveau <SPAN/> utilise pour le surlignage
des termes de recherche.
a.phpdig : Classe de balise <A/> pour les liens de rsultats et
de navigation.
Les balises sont toutes du style <phpdig:parametre/>.
A part la balise
<phpdig:results></phpdig:results>, ce sont toutes des
balises unitaires.
9.2. Balises en dehors de la table des rsultats
phpdig:title_message Titre de la page
phpdig:form_head Dbut du formulaire
phpdig:form_title Titre du formulaire
phpdig:form_field Champ texte du formulaire
phpdig:form_button Bouton de soumission du formulaire
phpdig:form_select Liste droulante du nombre de rsultats par page
phpdig:form_radio Boutons radio sur l'interprtation des mots
phpdig:form_foot Fin du formulaire
phpdig:result_message Message sur le nombre de rsulats
phpdig:ignore_message Message sur les mots trop courts
phpdig:ignore_commess Message sur les mots trop courants
phpdig:nav_bar Barre de navigation dans les pages de rsultats
phpdig:pages_bar Barre de navigation sans les liens suivants/prcdents
phpdig:previous_link src=[img src] Lien vers l'icne "prcdents"
phpdig:next_link src=[img src] Lien vers l'icne "suivants"
9.3. Balises pour la table des rsultats
phpdig:results Encadre les lignes de rsultat
phpdig:img_tag Baragraph de pertinence
phpdig:weight Pertinence de la page (sur 100)
phpdig:page_link Titre du rsultat et lien vers la page
phpdig:limit_links Liens limitant la recherche ą un site/un chemin
phpdig:text Texte du rsultat
phpdig:n Classement du rsultat
phpdig:complete_path URL complŁte du document
phpdig:update_date DerniŁre mise ą jour du document
phpdig:filesize Taille du document (Kilo Octets)
10. Intgrer PhpDig ą un site web
10.1. Le script index.php
Le script index.php est juste un exemple d'utilisation de PhpDig avec
le template du męme nom. Ce script peut ętre intgr ą n'importe quel endroit
de votre site, du moment que les fichiers de configuration et les librairies
sont correctment incluses.
la variable $relative_script_path doit indiquer le chemin relatif de
la racine du rpertoire phpdig par rapport au script courant.
La fonction phpdigSearch() doit galement ętre appele toujours de
la męme faon :
extract(phpdigHttpVars(
array('query_string'=>'string',
'template_demo'=>'string',
'refine'=>'integer',
'refine_url'=>'string',
'site'=>'integer',
'limite'=>'integer',
'option'=>'string',
'search'=>'string',
'lim_start'=>'integer',
'browse'=>'integer',
'path'=>'string'
)
));
phpdigSearch($id_connect, $query_string, $option, $refine,
$refine_url, $lim_start, $limite, $browse,
$site, $path, $relative_script_path, $template);
Seul le dernier paramŁtre, $template a de l'importance pour l'intgration :
Utilisez 'classic' pour la prsentation fixe de PhpDig (les balises d'en-tęte
html sont incluses.)
Utilisez la variable $template pour utiliser un template.
La variable peut ętre dfinie dans le fichier config.php
ou ailleurs, afin de prsenter un aspect diffrent selon la partie
du site oł le moteur est appell.
Utilisez 'array' pour exploiter vous-męme les rsultats de
recherche.
10.2. Utiliser le mode 'classic'
Vous n'avez rien ą faire : Tout l'affichage est pris en compte par la
fonction phpdigSearch(). En revanche vous ne pourrez pas modifier
l'affichage.
10.3. Utiliser les templates
A l'aide des templates dcrits plus haut, vous pouvez facilement intgrer
PhpDig ą la charte graphique de votre site.
En effet, un template peut aussi bien ętre une page HTML entiŁre, comme
les templates fournis avec PhpDig, qu'une seule partie de la page. Seule
cette partie sera dcrite par le template et apparatra ą l'endroit oł
vous placerez l'appel de la fonction phpdigSearch().
Il vous suffira d'intgrer ą votre css une classe .phpdigHighlight.
10.4. Utiliser PHP
En utilisant le mode 'array', la fonction phpdigSearch() renvoie
un tableau ą la fois des rsultats et des lments du formulaire de recherche.
Pour afficher le contenu du tableau de recherche, modifiez l'appel de la
fonction ainsi et envoyez au script une url complŁte de rsultat de recherche :
print '<pre>';
print_r(
phpdigSearch($id_connect, $query_string, $option, $refine,
$refine_url, $lim_start, $limite, $browse,
$site, $path, $relative_script_path, 'array')
);
print '</pre>';
Exploitez ensuite le contenu du tableau comme vous l'entendez.
11. Fonctionnement interne de PhpDig
11.1. Exploration et Indexation
PhpDig lit la page d'origine spcifie pour l'indexation, et rajoute au fur et ą mesure
de son exploration les liens trouvs dans une liste de liens ą suivre.
Lorque aucun nouveau lien n'est trouv par le moteur, il termine son indexation.
Afin de dterminer que faire d'un lien, PhpDig opŁre ainsi :
- Il demande au serveur l'en-tęte (header HTTP) de l'URI en cours. Si le
mime-type du document renvoy correspond ą un document que PhpDig est capable
d'indexer, il continue le traitement.
Si le serveur renvoie une redirection, PhpDig analyse si la redirection renvoie
bien ą une URI du męme site (ou du męme domaine).
Le moteur compare ensuite l'en-tęte "last-modified" avec la date stocke dans
sa base de donnes en cas de r-indexation. Si les deux dates sont identiques,
l'URI n'est pas traite.
Enfin, PhpDig vrifie que l'URI ne fait pas partie de la liste d'exclusions
d'un fichier robots.txt ou d'exclusions dfinies par l'utilisateur.
- Dans le cas d'un document HTML, PhpDig lit les meta-tags robots pour savoir
si il lui est permis d'indexer et/ou de suivre les liens contenus dans le
document.
- PhpDig tlcharge ensuite le document point par l'URI dans un fichier temporaire.
Le document est tout d'abord index : Le contenu textuel est stock
dans un fichier servant ą l'affichage des extraits, puis analys afin d'en extraire
les mots-clef.
Pour un document HTML, les commentaires dfinis dans le fichier de configuration
(constantes PHPDIG_EXCLUDE_COMMENT et PHPDIG_INCLUDE_COMMENT) dterminent
des parties ą exclure de l'indexation.
- Enfin, PhpDig relit le fichier temporaire dans le cas d'un document HTML
afin d'en extraire de nouveaux liens. Tous les liens sont analyss afin de
dterminer ceux ą indexer, ceux qui mŁnent vers un document inexistant ou
protg, vers un autre site, etc.
- La procdure d'indexation est exclusive par site : Un site est verrouill
tant qu'une opration (indexation, suppression de branche, etc) est effectue.
Aucune autre opration ne peut ętre effectue tant que le verrou est en place.
11.2. Recherche
Męme si le formulaire de recherche parle de lui-męme, il n'est pas inutile de
rappeler que :
- Un oprateur AND est appliqu inconditionnellement ą tous les termes de
recherche ;
- Un mot prcd d'un '-' (signe moins) est exclu de la recherche. Aucune
page contenant ce mot ne sera retourne en rsultat ;
- La recherche est insensible ą la casse et aux accents.
12. Obtenir de l'aide sur PhpDig
Un mini-forum consacr ą PhpDig est disponible ą l'adresse
http://phpdig.toiletoine.net/messageboard/
Vous pouvez y poser toutes les questions relatives au programme.
Vous pouvez demander de l'aide directement ą l'auteur en crivant ą
phpdig@toiletoine.net
Fichier cr par le parser XSLT Php 4.3.0 - Sablotron 0.97
Wyszukiwarka
Podobne podstrony:
phpdig doc frphpdig doc apiphpdig doc apiphpdig doc enphpdig doc enAdditional Products fr03 PEiM Met opisu ukł elektr doc (2)Od Pskowa do Parkan 2 02 docprotokół różyca docCW5 docsyntax docindex frO nagich udach panny Dietrich docfr c24Forsyth Fr Upior Manhattanuwięcej podobnych podstron