phpdig Version 1.6.2 Dokumentation

Letztes Update: 2003-04-06
Übersetzt von Todd K. Bell für phpdig.de

1. Inhaltsangabe

2. Wo finde ich die neuste phpdig Version?

Hier : http://phpdig.de/

3. phpdig Funktionen

3.1. HTTP Spidering

phpdig folgt Links, wie jeder andere Web Browser auch, um die Seiten Liste dem Index hinzuzufügen.

Diese Links können in einer AreaMap or in Frames sein. phpdig unterstützt Standortwechsel. Der Syntax von HREF Attributen wird von phpdig befolgt. Einfache Javascript Links wie window.open() or window.location() werden auch verfolgt.

phpdig verlässt die Root Seite die für die Indexierung selektiert wurde nicht (aber die Domain Indexierungs Optionen sollte man sich dennoch anschauen) . Die spidering Tiefe wird vom User eingestellt.

Der gesamte HTML Inhalt wird aufgelistet, sowohl statische wie auch dynamische Seiten. phpdig durchsucht die Mime-Types der Dokumente.

3.2. Voll-Text Indexierung

phpdig indexiert alle Worte eines Dokumentes, abgesehen von kleinen Wörtern (kleiner als 3 Buchstaben) und oft benützen Wörter. Diese werden in einer Text Datei definiert.

Allein stehende Nummern werden nicht indexiert, die innerhalb von Wörtern werden es. Wörter die Unterstrichen wurden werden auch indexiert.

Die Anzahl des Auftetens von Wörtern innerhalb jedes Dokumentes wird auch gespeichert. Wörter in der Überschrift können ein schwereres Gewicht in der Ergebniss Rangordnung haben.

3.3. Datei Sorten die indexiert werden können

phpdig indexiert HTML and Text Dateien selbstständig.
phpdig kann PDF, MS-Word and MS-Excel Dateien indexieren wenn externe Binaries zu diesem Zweck an der Spidering Machine installiert werden.
phpdig ist konfiguriert catdoc, xls2csv und pstotext Programme zu nutzen.

Man kann catdoc und xls2csv bei dieser URL finden : http://www.45.free.net/~vitus/ice/catdoc/. Benützt die 0.91.5 Version. Die "stabile" Version hat einige Probleme mit den Kodierungen die nicht im xls2csv Programm enthalten sind.

Man kann pstotext hier finden: http://research.compaq.com/SRC/virtualpaper/pstotext.html.

Der Author bietet keine Hilfestellung bei der Nutzung dieser Werkzeuge an. Kontatkiert die Authoren der Werkzeuge selbst wenn ihr Probleme bei der Komplilierung oder Installation habt.

Natürlich kann man auch anderes Werkzeug benützten, die Wahl liegt ganz bei euch.
Das Ausgabe Format muss jedoch einfacher Text sein.

3.4. Andere Funktionen

phpdig versucht die Datei robots.txt auf dem Server Root zu lesen. Ausserdem sucht es nach Meta-Robot Tags.

phpdig kann Seiten spidern die auf einem anderem Port als dem Standart Port, 80, bedient werden.
Wenn man dem Robot einen Usernamen und ein gültiges Passwort gibt kann dieser auch Passwortgeschütze Seiten indexieren. Vorsicht jedoch! Diese Fähigkeit könnte es unautorisierten Usern erlauben an geschütze Informationen zu gelangen.

Wir schlagen vor eine spezifische Instanz von phpdig zu erstellen, geschützt durch die selben Methoden wie die geschützte Seite selbst. Für den Robot muss ein spezielles Konto (account) erstellt werden.

Der "Zuletzt-Modifiziert" (Last-Modified) Header Wert wird in der Datenbank gespeichert um eine wiederholte Indexierung zu vermeiden. Das Selbe gilt für die "Wiederbesucht-Nach" (revisit-after) <Meta> Tag.

Wenn erwünscht kann die Engine den Text Inhalt der indexierten Dokumete speichern. In diesem Fall werden relevante Auszüge, die auf den Seiten gefunden wurden, in den Suchergebnissen mit hervorgehobenen Such Begriffen angezeigt.

3.5. Anzeige Templates

Ein einfaches Template System erlaubt die Anpassung der Oberfläche der Such und Ergebniss Seiten an eine schon exestierende Seite. Um eine Template zu erstellen muss man nur ein paar XML-Artige Tags in die HTML Seite einfügen.

3.6. Grenzen

phpdig kann keine exakte Ausdrucks Suche machen.

Wegen dem Zeit konsumierendem Indexierungs Prozess dürfen die Apache/php Web Server nicht im Safe_Mode konfiguriert sein. 
Diese Grenze kann folgendes beinflussen:
- Fern-Indexierung mit MySql TCP Verbindungen und FTP Verbindungen durchzuführen.
- Den Indexierungs Prozess in einem Shell Command auszuführen. Dies kann durch ein "Cron" bewerkstelligt werden.

Spidering und Indexierung ist etwas langsam. Dagegen sind Suchen schnell, selbst mit erweitertem Inhalt.

4. Installation

4.1. Voraussetzungen

phpdig benötigt einen Web Serverr (Apache ist mein Favorit) mit Php (Modul or CGI) und einem MySql Datenbank Server.

Die folgenden Konfigurationen wurden getestet :
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 kernel 2.4.3 ;
Php/4.3.0, Apache/2.0.44 (Unix) OpenSSL/0.9.6g, Linux kernel 2.4.18;
Php/4.3.1, Apache/2.0.44 (Win32), Windows 2000 .

4.2. Skript Installation

Entpackt das Archiv in einen Ordner und konfiguriert Apache diesen zu bedienen (serven). (Als Beispiel nennen wir diesen Ordner [phpdig_DIR]). Die engine benötigt keinen dedicated VirtualHost um zu funktionieren.
Wenn phpdig auf einem auf dem Unix Betriebsystem laufendem Server installiert wurde muss man die Datei Genehmigung in den folgenden Ordnern auf "beschreibar" (writable) stellen:

[phpdig_DIR]/text_content
[phpdig_DIR]/include
[phpdig_DIR]/admin/temp

4.3. MySql Datenbank Installation

Es gibt 2 Wege die Datenbank zu installieren.

- Php Installierungs Skript :
Öffnet die folgende Seite in dem bevorzugtem Browser:

[phpdig_DIR]/admin/install.php

Folgt dann der Anleitung.
Nach belieben kann nun eine komplette Datenbank oder nur ein Table erstellt werden. Die Möglichkeit eine schon bestehende Version von phpdig upzudaten besteht auch.
Das Skript benützt die Formular Daten um die Felder von des "[phpdig_DIR]/include/_connect.php" Skriptes zu vervollständigen und kopiert diese dann zu "[phpdig_DIR]/include/connect.php".

- Manuelle Installation:
Erstellt die Datenbank (Jeder Name ausser "phpdig" ist möglich) :

#mysql mysql
mysql> CREATE DATABASE phpdig;
mysql> quit

#mysql phpdig < [phpdig_DIR]/sql/init_db.sql

Stell sicher das alle Tables da sind:

#mysql phpdig
mysql> SHOW TABLES;

Die Antwort sollte lauten :

+------------------+
| Tables_in_phpdig |
+------------------+
| engine           |
| excludes         |
| keywords         |
| logs             |
| sites            |
| spider           |
| tempspider       |
+------------------+
7 rows in set (0.00 sec)

mysql>

Nachdem die Datenbank erstellt wurde kopiert die "[phpdig_DIR]/include/_connect.php" Datei nach "[phpdig_DIR]/include/connect.php" und editiert sie.
Verändert die Werte "<host>", "<user>", "<pass>", und "<database>" zu der URL des Datenbank Servers, dem Usernamen, dem Passwort das für die Verbindung benötigt wird (falls eines benötigt wird) und den Namen den man der phpdig Datenbank geben will.
Wenn man allen Table Namen ein Präfix in Form einer maßgeschneiderten (custom) String geben will, ersetzt "<dbprefix>" mit dieser String und gebt allen Tablen, in jedem MySql Klienten, neue Namen. Wenn nicht lasst diesen Wert leer.
In einer Lokalen Installation sind die Werte "localhost", "root", und "" in den meisten Fällen ausreichend.

Um sicherzustellen das die Installation Komplett ist öffnet die Haupt Seite [phpdig_DIR]/index.php mit dem favorisiertem Web Browser.
Die Such Eingabe müsste nun sichtbar sein. 

5. Konfiguration

Nach der Installation funktioniert die Engine auch ohne Modifikationen an der Konfigurations Datei. Die Konfigurationen die durchgeführt werden können hängen von den einzelnen Bedürfnissen des Users ab. Vergesst nicht das Administrator Login und Passwort zu ändern wenn Php auf einem Apache Server, dynamisch oder statisch, kompiliert wurde. 
Notiz : Authenzifikationen funktionieren nicht auf einem CGI php. In diesem Fall benützt die .htaccess Datei um den Inhalt des [phpdig_DIR]/Admin Ordners zu schützen. 

Alle Konfigurations Parameter sind in der [phpdig_DIR]/include/config.php Datei enthalten. Alle Parameter werden von einem daraufolgendem Kommentar beschrieben.

In den folgenden Beispielen sind alle statement Zeilen aus der config.php Datei.
Die Werte sind standart Werte.

5.1. Die Konfiguration des Administrator Zugangs

Verändert die folgenden Konstanten. Für den Fall das ihr kein sichtbaren Passwort Wert haben wollt, benützt die Apache Authentifikations Funktionen.

define('phpdig_ADM_AUTH','1');     //Aktiviert/Deaktiviert die Authentifikations Funktionen.
define('phpdig_ADM_USER','admin'); //Username
define('phpdig_ADM_PASS','admin'); //Passwort

5.2. Konfiguration des Robots und der Engine

Verändert die folgenden Variablen und Konstanten.

define('SPIDER_MAX_LIMIT',20);          //Max recurse Level beim spidern
define('SPIDER_DEFAULT_LIMIT',3);       //Standart Wert
define('RESPIDER_LIMIT',4);             //Recurse Grenzwert für ein Update

define('LIMIT_DAYS',7);                 //Standart Anzahl der Tage bevor eine Seite wieder Indexiert wird.
define('SMALL_WORDS_SIZE',2);           //Wörter die nicht Indexiert werden sollen
define('MAX_WORDS_SIZE',30);            //Maximum Größe der Wörter

define('phpdig_EXCLUDE_COMMENT','<!-- phpdigExclude -->');
                                        //HTML Kommentar um einen Teil 
                                        //der Seite auszuschließen
define('phpdig_INCLUDE_COMMENT','<!-- phpdigInclude -->');
                                        //HTML Kommentar um das Auschließen eines  Teils
                                        //der Seite aufzuheben.
define('phpdig_DEFAULT_INDEX',true);    //phpdig betrachtet /index oder /default
                                        //html, htm, php, asp, phtml als das gleiche
                                        //wie '/' 
define('phpdig_SESSID_REMOVE',true);    // Entfernt SIDS von indexierten URLS
define('phpdig_SESSID_VAR','PHPSESSID');// Name der SID Variable

define('TITLE_WEIGHT',3);               //Relatives Gewicht der Titel in der Rangordnung
define('CHUNK_SIZE',2048);              //Chunk Größe für den regex Prozess

define('SUMMARY_LENGTH',500);           //Länge der Ergebniss Zussammenfassung


define('TEXT_CONTENT_PATH','text_content/'); //Text Inhalt Datei Pfad.
define('CONTENT_TEXT',1);                    //Aktiviert/deaktiviert die
                                             //Speicherung von Text Inhalten.
define('phpdig_IN_DOMAIN',false);            //Erlaubt phpdig von Host zu Host, innerhalb eines
                                             //Domains, zu springen. Wenn der Host "www.mydomain.tld" ist,
                                             //dann ist das Domain "mydomain.tld"

5.3. Konfiguration der phpdig kodierung

Modifiziert den folgenden Inhalt. phpdig unterstützt keine multiplen Kodierungen. Die Wahl beinflusst alle indexierten dokumente und das Admin Interface.

define('phpdig_ENCODING','iso-8859-1');   // iso-8859-1 und iso-8859-2 werden unterstützt

Wenn ihr wollt das phpdig andere Kodierungen unterstützt müssen Array Indexe an die Folgenden Variablen angehängt werden. Hier ein Beispiel an exestierenden:

$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. Externe Binaries konfigurieren

Jedes externe Werkzeug wird durch 3 Konstanten definiert:
- INDEX (Wahr or Falsch) : Aktiviert die File-Type Indexierung ;
- PARSE (path) : Auszuführender Pfad ;
- OPTION (options) : Optionen des Programms.

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. Template Konfiguration

Verändert die folgenden Variablen und Konstanten.

$phpdig_language = "en";                        //GUI Sprache

$template = "$relative_script_path/templates/phpdig.html";  //Template Datei Pfad
define('HIGHLIGHT_BACKGROUND','yellow');         //Hervorheben der Hintergrundfarbe
                                                 //Nur für den klassischen Modus

define('HIGHLIGHT_COLOR','#000000');             //Hervorheben der Textfarbe
                                                 //Nur für den klassischen Modus

define('LINK_TARGET','_blank');                  //Ziel für Ergebniss Links
define('WEIGHT_IMGSRC','./tpl_img/weight.gif');  //Bild pfad für einen Paragraphen
define('WEIGHT_HEIGHT','5');                     //Paragraphen Höhe
define('WEIGHT_WIDTH','50');                     //Maximale Paragraphen Breite
define('SEARCH_PAGE','index.php');               //Der Name der Such-Seite

define('SUMMARY_DISPLAY_LENGTH','150');          //Maximal anzahl der Charaktere die in der
                                                 //Beschreibung angezeigt werden
define('DISPLAY_SNIPPETS',true);                 //Text Schnipsel Anzeige
define('DISPLAY_SNIPPETS_NUM',4);                //Maximal Anzahl der angezeigten Schnipsel
define('DISPLAY_SUMMARY',false);                 //Anzeige Beschreibung
define('phpdig_DATE_FORMAT','\1-\2-\3');         // Daten Format für das letzte Update
                                                 // \1 steht für Jahr, \2 für Monat und \3 für Tag

define('SEARCH_DEFAULT_LIMIT',10);      //Ergebnisse pro Seite
define('SEARCH_DEFAULT_MODE','start');  //Standart Such Modus (start|exact|any)

5.6. FTP Konfiguration (falls nötig)

phpdig indexiert keine FTP Seiten.

Viele phpdig User installieren es auf einem geteiltem Web Server und auf diesen ist Php immer mit einem aktiviertem safe_modus konfiguriert. Auf diesen geteilten hostings ist der Zugang zum crontab nicht gestattet.

Eine weitere Instanz von Php, auf einem anderem Server ist die Lösung. In meinem fall läuft die Demo Version von phpdig, die sich um den Update Prozess kümmert, auf einem, bei mir zuhause installiertem, Linux Server mit Kabel Verbindung. Euer Host muss euch erlauben mit eurer MySql Datenbank per TCP/IP in Verbindung zu treten.

Und wie sieht es mit der berühmten FTP Verbindung aus? Sie sendet Text Informationen an den zuständigen Ordner auf dem entfernt liegendem Server. 
Wenn man die FTP Funktion deaktiviert (wegen einer schlechten Verbindung, wie bei einem Modem) wird nicht das exakte Dokument auf der Ergebniss Seite angezeigt, sondern nur die Zussammenfassung in der Datenbank gespeichert.

Die FTP Parameter sehen aus wie folgt:

define('FTP_ENABLE',0);              //Aktiviert/deaktiviert die FTP Verbindung
define('FTP_HOST','<ftp host dir>'); //FTP Server Name
define('FTP_PORT',21);               //FTP Port
define('FTP_PASV',1);                //Benütze passiv Modus (PASV), wird empfohlen
define('FTP_PATH','<phpdig root dir>'); //Pfad des phpdig Ordners auf dem Server
                                              //relativ zu dem FTP Root Ordner
define('FTP_TEXT_PATH','text_content'); //Text Inhalt Ordner (Standartwert)
define('FTP_USER','<ftp username>');  //FTP Username Konto
define('FTP_PASS','<ftp password>');  //FTP Passwort Konto

6. phpdig auf den neuesten Stand bringen (Update)

6.1. Datenbank Update

[phpdig_DIR]/sql/update_db_to[version].sql enthält alle notwendigen Informationen und SQL Anleitungen um die existierende Instanz von phpdig auf den neuesten Stand zu bringen.

6.2. Skript Update

Speichert eure Konfigurations Dateien und überschreibt die alten Skripts mit den Neuen.

7. Indexierung mit einem Web Interface

7.1. Indexierung eines neuen Hosts

Öffnet das Admin Interface mit eurem Browser: [phpdig_DIR]/admin/index.php. Füllt einfach das URL Feld aus, phpdig erkennt automatisch ob es sich um einen neuen Host handelt oder nicht. Man kann auch einen Pfad oder eine Datei als Startpunkt für den Robot einstellen. 

Selektiert die maximal Such Tiefe der Ebenen und klickt dann auf den "Dig This !" Knopf.

Es wird sich eine neue Seite öffnen die den Vortschritt des Indexierungs und Spidering Prozesses anzeigt. Wenn sie doppelt angezeigt wird, dann bedeutet das phpdig erkannt hat das es sich bei dem gegenwärtigem Dokument, mit der neuen URL, um eine Kopie einer in der Datenbank schon existierenden Seite handelt.
Jedes "+" Zeichen bedeutet das ein neues Link entdeckt wurde dem nun zur nächsten Spidering Ebene gefolgt wird.
In Jeder neuen Ebene zeigt phpdig die Anzahl der neuen Links an die gefunden wurden. Wenn keine neuen Links mehr gefunden werden stoppt phpdig mit dem browsen und zeigt die Liste der Dokumente an.

7.2. Updaten eines existierenden Hostes

Von der Admin Seite aus kann man das Update Interface erreichen indem man sich eine Seite aussucht und dann den [update from] Knopf betätigt.
Es erscheint ein zweiteiliges Interface. Auf der Linken seite des Bildschirms sieht man die client-side Ordner Struktur derSeite. Der blaue Pfeil zeigt den "Ordner" Inhalt um die Möglichkeit zu geben die Einzelnen Dokumente seperat zu indexieren. Die Dokumente innerhalb eines Ordners werden auf der rechten Seite angezeigt.

Auf beiden Seiten löscht das rote Kreuz die selektierten Ordner, inklusive Unterordner,oder Dateien von der Engine.
Das grüne Häkchen reindexiert den gewählten Ordner oder das gewählte Dokument wenn sie öfter indexiert wurden als per [LIMIT_DAYS] angegeben. Es sucht ausserdem nach neuen Links in Dokumenten die sich seit dem letzten mal geändert haben.

7.3. Indexierungs Instandhaltung

Drei Skripte werden zum löschen Nutzloser Daten in der phpdig Datenbank genutzt. Die Links zu ihnen sind auf der Administrator Seite.

"Clean index" löscht indexierungs Daten die nicht auf irgend eine Seite verlinkt sind. Sehr nützlich wenn manuelle Löschungen an der Datenbank vollzogen wurden.

"Clean dictionary" löscht Schlüsselwörter die nicht beim Indexierungsprozess verwendet werden. Sehr nützlich um die Größe eines Ordners zu verringern, besonderst wenn eine große Seite eine Unzahl von Technischen Begriffen besaß und von der Engine gelöscht wurde.

"Clean common" löscht Wörter die in die Text Datei für häufig auftretende Wörter aufgenommen wurden. Es müssen jedoch erst neue Wörter in die [phpdig_DIR]/includes/common_words.txt Datei aufgenommen werden. Alle Referenzen zu diesen Wörtern werden dann gelöscht.

8. Indexierung per Eingabeauforderung

Das Skript [phpdig_DIR]/admin/spider.php kann von der Shell aus gestartet werden um einen Webserver nicht zu überlasten.

Das starten des Skriptes :

#php -f [phpdig_DIR]/admin/spider.php [Option]

Liste der Optionen :
- all (Standartwert) : Bringt alle Hosts auf den neuesten Stand ;
- forceall : Zwingt alle Hosts auf den neuesten Stand ;
- http://mondomaine.tld : Hinzufügen oder auf den neusten Stand bringen der URL ;
- path/file : Hinzufügen oder auf den neuesten Stand bringen aller URLS in der angegebenen Datei.

Beispiele :

#php -f [phpdig_DIR]/admin/spider.php http://host.mydomain.com
#php -f [phpdig_DIR]/admin/spider.php [Datei die eine URL Liste enthält]

Wie in jedem Shell Kommando kann der Output zu einer Textdatei umgeleitet werden. (Wenn man Logbücher will)

#php -f [phpdig_DIR]/admin/spider.php all >> /var/log/phpdig.log

[phpdig_DIR]/admin/spider.php kann auch von einem Cron Task gestartet werden um ein Auto Update zu vollziehen. Die vorgeschlagene Zeit für dieses Task sind 7 Tage. Die auf den neuesten Stand gebrachten Dokumente die man sich sofort ansehen möchte können manuell auf den neuesten Stand gebracht werden.
Diese Seiten können einen revisit-after Metatag mit einer kurzen verzögerung beinhalten.

9. Templates

9.1. Beschreibung von Templates

Templates sind HTML Dateien die xml-artige tags enthalten welche den dynamischen Inhalt von phpdig ersetzten.
Um ein Beispiel zu sehen wie man eine Template herstellt, seht euch den beigefügten Template Source Code an.

Die <phpdig:results></phpdig:results> Tags zeigen die Ergebniss Tables an : Der Inhalt zwischen den Tags wird so oft wiedergegeben wie es Ergebnisse auf der Ergebniss Seite hat.

phpdig benützt 2 CSS Klassen:
Die .phpdigHighlight : <SPAN/> Klasse für das hervorheben von Suchkriterien.
Die a.phpdig : <A/> Klasse für Ergebnisse und Navigations-Links.

Alle Template Tags sehen so aus: <phpdig:parametre/>.
Abgesehen von den <phpdig:results></phpdig:results> Tags sind alle Tags stand-alone (alleinstehend).

9.2. Tags ausserhalb des Ergebniss Tables

phpdig:title_message   Seiten Titel

phpdig:form_head       Startet das Such Forular
phpdig:form_title      Formular Titel
phpdig:form_field      Text Felder des Formulars
phpdig:form_button     "Submit" Knopf des Forumlars
phpdig:form_select     Selektier Liste um die Anzahl der Ergebnisse pro Seite auszusuchen
phpdig:form_radio      Radio Knopf für Syntaxanalyse (parsing) der Such-Knöpfe
phpdig:form_foot       Ende des Such Formulars

phpdig:result_message         Anzahl der Ergebnisse - Nachricht
phpdig:ignore_message         Wörter zu kurz - Nachricht
phpdig:ignore_commess         Zu einfache (häufig gebrauchte, wie z.B. und/die/das) Wörter

phpdig:nav_bar         Navigations Leiste um durch die Ergebnisse zu browsen
phpdig:pages_bar       Navigation bar ohne Vor/Zurück Links
phpdig:previous_link src='[img src]'   "Zurück" Graphik
phpdig:next_link src='[img src]'       "Vor" Graphik

9.3. Results table tags

phpdig:results       Beinhaltet Ergebniss Liste

phpdig:img_tag       Relevanz Paragraph
phpdig:weight        Relevanz der Seite (in Prozent)
phpdig:page_link     Ergebniss Titel und Link zum Dokument
phpdig:limit_links   Links der Limitationen zu einem Host/Pfad
phpdig:text          Hervorgehobener Text Auszug oder Zussammenfassung
phpdig:n             Ergebniss Rangordnung, angefangen mit #1
phpdig:complete_path Komplette URL des Dokuments
phpdig:update_date   Letztes Update des Dokuments
phpdig:filesize      Größe des Dokuments (in KiloByte)

10. phpdig in eine Webseite einfügen

10.1. Das index.php Skript

Das index.php Skript ist nur ein Beispiel für die Nutzung phpdigs mit einer gleichnamigen Template. Dieses Skript kann in jeden Teil eurer Webseite eingebaut werden, vorrausgesetzt die Konfiguration Dateien und Libraries sind inklusive.

$relative_script_path muss den relativen Pfad phpdigs vom Root Ordner des aktuellen Skripts beinhalten.
phpdigSearch() muss immer auf diese Art und Weise aufgerufen werden:

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);

Der letze Parameter, $template, bestimmt wie phpdig funktioniert:
Benützt 'classic' (klassisch) für die statische Oberfläche phpdigs. Alle HTML Tags sind inklusieve.
Benützt die Variable $template um eine Template einzusetzten. Diese Variable kann in der config.php Datei bestimmt werden, oder irgendwo anderst um nur das Aussehen der Oberfläche eines Teiles der Webseite zu verändern.
Benützt 'array' um das Such Formular und die Ergebnisse nach Belieben zu verändern.

10.2.Den 'classic' (klassisch) Modus benützen

Hier gibt es nichts zu tun : phpdigSearch() kümmert sich um sämtliche Display funktionen. Mit dieser Funktion kann man das Display, die Oberfläche, nicht verändern oder modifizieren.

10.3. Templates benützen

Wie bei den Templates vorher beschrieben, es ist sehr einfach phpdig in eine exestierende Webseite einzubauen.
Eine Template kann entweder eine komplette, oder nur Teil einer HTML Seite sein die als Vorlage bereitgestellt wird. Nur dieser Teil wird von der Template beschrieben und taucht beim aufrufen der phpdigSearch() Funktion auf.
Man muss nur eine .phpdigHighlight CSS Klasse an das existierende CSS anfügen.

10.4. PHP benützen

Beim benutzen des 'array' Modus antwortet die phpdigSearch() Funktion mit einem Array das Ergebnisse und Such Formular Elemente enthält.
Benütze folgendes um den gesamten Inhalt des Arrays zu bekommen und damit dem Skript die komplette Such Ergebniss URL zu geben:

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>';

Macht was ihr wollt mit dem Ergebniss. (Das erste groß, die folgenden 3 medium und nur die Titel der anderen auf der rechten Seite, alles ist möglich!)

11. phpdig Innenleben

11.1. Spidering and Indexierung

phpdig ließt die erste Seite die für die Indexierung eingegeben wurde und fügt gefunde Links in eine Liste für Links, denen gefolgt werden kann, ein.
Wenn der Robot keine gültigen Links mehr findet wird der Prozess beendet.

Entscheided was ihr mit den Links machen wollt und phpdig folgt diesen Prozeduren :

- Es fordert den HTTP header der aktuellen URL. Wenn der Mime-Type, der vom Robot zurück geschickt wurde, einer Syntaxanalys unterzogen werden kann wird der Prozess fortgesetzt.
Wenn der Server eine eine Umleitung zurückschickt sucht phpdig die Umleitung darauf hin ab ob sie sich auf einem anderem Host befindet oder nicht.
Der Robot vergleich den "last-modified" Header mit den schon gespeichertem. Wenn sie gleich sind wird die URL nicht bearbeitet.
Anschließend vergleicht der Robot die URL mit der Liste die ausgeschlossene Seiten speichert.

- Wenn es sich um ein HTML Dokument handelt ließt der Meta Robot erst den inhalt um herauszufunden um er Links auf dieser Seite überhaupt indexieren und folgen darf.

- Dannach lädt phpdig das Dokument in eine temporäre Datei.
Erst wird das Dokument indexiert: Der Text inhalt wird in einer Datei gespeichert, um später Text Schnipsel auf der Ergebniss Seite darzstellen, und dann eine Syntaxanalyse unterzogen um die Keywords (Schlüsselwörter) zu finden.
Bei einem HTML Dokument wird nach den 'einbeziehen' und 'auschließen'  Kommentaren gesucht (die phpdig_EXCLUDE_COMMENT und phpdig_INCLUDE_COMMENT Konstanten) um zu entscheiden welche Teile des Dokumentes indeziert werden soll und welche nicht.

- Zu allerletzt ließt phpdig noch einmal die Temporäre Datei (im Falle eines HTML Dokumentes) um neue Links zu extrahieren. Alle Links werden darauf getestet und analysiert um zu entscheiden ob sie indexiert werden sollen, ob sie ein Fall für den 404 Error sind oder ob sie zu einem anderem Host führen und so weiter.

- Der Indexierungs Prozess ist exklusiv: Ein Host wird von der Spider während der Indexierung, einem Update oder bei Löschungen gesperrt. Es werden keine Oprationen auf diesem Host erlaubt solange dieser gesperrt ist. Die einzige Ausnahme stellt die Such Funktion dar.

11.2. Such Funktions Aufklärung

Das Such Forumlar ist so simpel das man eigentlich nicht viel erklären muss. Aber es könnte nützlich sein folgendes zu wissen:

- Ein 'AND' ( 'und' ) Operator wird zwischen jedem Suchbegriff eingesetzt;
- Ein '-' Zeichen vor einem Wort schließt es aus der Suche aus. Kein Dokument das dieses Wort beinhaltet wird angezeigt;
- Die Suchfunktion kümmert sich nicht um Groß- und Kleinschreibung oder um Akzente.

12. phpdig Hilfestellung

Ein deutschsprachiges Forum für phpdig findet man hier: http://phpdig.de/
Wenn Fragen auftauchen sollten, stellt sie dort.