Das PHP Programm
Such_In_Html.php
benötigt auf dem Server in dem Verzeichnis, in dem es sich selbst
befindet das Recht zum Schreiben von Dateien. Bitte setzen die Rechte
entsprechend. Nur so kann es bei einer Suchanfrage die Suche in der
SuchIndex.TXT
durchführen und das Ergebnis in einer Datei speichern, die es dann
hinterher anzeigen kann. Außerdem braucht es natürlich die
Datei
SuchIndex.TXT im selben Verzeichnis. Diese können Sie mit dem Programm
Such_Erst_Html erstellen, oder neu erzeugen, wenn sich in Ihrer statischen Webseite Änderungen ergeben haben.
Außerdem benötigt das Programm
Such_In_Html.php auch noch zwei Konfigurations- (Steuerungs-) Dateien. Die eine muss den Namen
Such_Html_Menues.php haben und beinhaltet die Einträge, die zur Erzeugung des
Menüs für die erzeugte Antwortseite auf die Suchanfrage benötigt werden und wird weiter unten vorgestellt und beschrieben.
Die Datei
Such_Erst_Html_Config.php wird auch vom Programm
Such_Erst_Html genutzt, so ist sicher gestellt, dass bei der Erzeugung der Datei
SuchIndex.TXT und beim Suchen in der Datei die gleichen Festlegungen (
define)
gelten und wird gleich im Anschluss gezeigt und besprochen. Dabei
gilt, Zeichenfolgen sind in doppelte Hochkommas eingeschlossen. Das ist
wichtig, zwar könnte PHP auch mit einem Hochkomma arbeiten, mein
Programm
Such_Erst_Html jedoch nicht!
Hinter
define(
steht eine Zeichenfolge, die auch im PHP Programm steht und dort
während des Programmlaufes mit der zweiten Zeichenfolge ersetzt
wird. So kann man ein Programm schreiben, ohne schon zu wissen,
wie die gewünschte Zeichenfolge genau sein soll. So
können Sie also den Namen der Suchindexdatei nennen wie Sie
wollen, Sie brauchen nur zum Beispiel hinter
SUCH_INDEXDATEINAME den gewünschten Eintrag machen.
Diese 3 Festlegungen werden sowohl von
Such_In_Html.php als auch von
Such_Erst_Html genutzt.
define("SUCH_INDEXDATEINAME","SuchIndex.TXT");
define("SUCH_ZEICHENLINK","<AUFRUF---------->");
define("SUCH_ZEICHENTITEL","<TITEL---------->");
Bei
SUCH_ZEICHENLINK und bei
SUCH_ZEICHENTITEL sollten Sie auf jeden Fall Zeichenfolgen nutzen, die ansonsten nie in der Datei
SuchIndex.TXT vorkommen können.
Die
folgenden Festlegungen dienen der Datenübermittlung zwischen der
Eingabeform in der Webseite, in der die Besucher Ihrer Webseite die
Suchbedingungen festgelegt. Schauen Sie sich dazu ruhig die
Beispieldatei
Besucher_Eingabeform.txt an, die Sie beim Download des Programms
Such_In_Html.php ebenfalls erhalten haben.
define("SUCH_SUCHBEGRIFFE","Su_Be");
define("SUCH_GROSS_KLEIN","Rgk");
define("SUCH_GANZES_WORT","Rgw");
define("SUCH_MIT_TITEL","Rtm");
define("SUCH_JA_SCHALTER","Ja");
define("SUCH_NEIN_SCHALTER","Nein");
Die
Eingabeform müssen Sie schon selbst Ihren Bedürfnissen
anpassen und außerdem sollte Sie dem Besucher eine (kurze, aber
erschöpfende) Erklärung zur Suche geben (dazu
könnten Sie als grobe Vorlage ruhig die Datei
Besucher_Erklaerung.txt nutzen, die Sie ebenfalls beim Download des Programms erhalten haben). Sehen Sie sich
hier ruhig unter dem Menüpunkt
Verschiedenes Suche in der HP die funktionierende Eingabemaske samt Erklärung an.
Auch die 3 nächsten Festlegungen werden nur von
Such_In_Html.php genutzt und zwar bei der Erstellung der Ergebnisseite.
define("SUCH_HP_ERGEBNIS","SuchErgebnis.php");
define("SUCH_TITEL_STRING","<title>Ergebnis der Suche in der HP von Heinz-Jürgen Schymura</title>
");
define("SUCH_ZEIGEN_STRING","Anzeigen");
Außerdem
wird dazu auch noch das folgende Array benötigt, in der Sie alles
schreiben können und müssen, was Sie im Kopf der
Ergebnisseite stehen haben möchten.
Dazu ist bei den
Arrays
noch zu bemerken, dass bei mir immer das Erzeugen des Arrays und damit
der erste (eigentlich der nullte Eintrag, da PHP die Zählung mit 0
beginnt) immer genutzt wird, um den Sinn des Arrays anzugeben, im
Programm jedoch nie genutzt wird.
$htmlkopf=array ("Alles (bis auf den Titel) was im HTMLKopf der Webseite vor body steht");
$htmlkopf[]="<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"
";
$htmlkopf[]=" \"http://www.w3.org/TR/html4/transitional.dtd\">
";
$htmlkopf[]="<head>
";
$htmlkopf[]="<link rel=\"stylesheet\" type=\"text/css\" href=\"_private/Homepage.css\">
";
$htmlkopf[]="<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">
";
$htmlkopf[]="<meta name=\"content-language\" content=\"de\">
";
$htmlkopf[]="<meta name=\"audience\" content=\"Alle\">
";
$htmlkopf[]="<meta name=\"author\" content=\"Heinz-Jürgen Schymura\">
";
$htmlkopf[]="<meta name=\"publisher\" content=\"Heinz-Jürgen Schymura\">
";
Als erstes wird der Dokumenttyp festgelegt, dann der
Headerbeginn
festgelegt, anschließend werden dann die Metaangaben gemacht,
welche und wie viel Sie auch wollen. Beachten Sie, dass alle Zeilen mit
dem Programm
Escapen behandelt wurden, damit PHP die
gewünschten doppelten Hochkommas auch wirklich in der Zeile stehen
lässt und nicht versucht, sie als Zeichenfolgenbeginn oder
-ende zu interpretieren.
Die beiden folgenden Arrays sind nicht für
Such_In_Html.php bestimmt, sondern werden von
Such_Erst_Html benötigt um innerhalb des Quelltextes einer einzelnen Webseite den
Beginn und das
Ende der
Ausgabe (festgelegt in der zentralen CSS-Datei) festzustellen.
Mit all diesen Angaben kann
Such_In_Html.php
bereits seine Arbeit machen, die übermittelten Begriffe
entsprechend den Wünschen des Besuchers suchen und das
Suchergebnis in der Datei (im gezeigten Fall
SuchErgebnis.php) speichern.
Es fehlen jetzt nur noch die
Menüfestlegungen. Dazu dient die Datei
Such_Html_Menues.php. Sie besteht lediglich aus 2 Arrays, in der Sie jeweils so viel Menüpunkte unterbringen können, wie Sie brauchen.
Sie
werden feststellen, dass es nicht ganz trivial ist, bei einer
statischem Webseite aktive Seiten einzubauen. Wenn Sie mehr
Informationen über PHP haben möchten, dann können
Sie sich auf dieser
Webseite eine kurze Einführung ansehen.
Ich zeige Ihnen, wie auf
meiner anderen Webseite, die sich mit
Wandern beschäftigt und auch
Bilder
anzeigt die Menüs bei der Suche aussehen. Dabei ist festzustellen,
dass Sie den Namen der Arrays nicht ändern dürfen, jedoch
natürlich den Inhalt. Wieder wird das 0.te Element nicht wirklich
genutzt.
$AusgabeLinksMenue=array ("Alles was zum Linksmenü gehört");
$AusgabeLinksMenue[]="<div id=\"ausgabe_container\">
";
$AusgabeLinksMenue[]="<ul id=\"linksmenue\">
";
$AusgabeLinksMenue[]="<li><a href=\"Verschiedenes/Apfelmaennchen.htm\">Apfelmännchen</a></li>
";
$AusgabeLinksMenue[]="<li><a href=\"Verschiedenes/Internet.htm\">Internetsicherheit</a></li>
";
$AusgabeLinksMenue[]="<li><a href=\"Verschiedenes/ChefkochRezept.htm\">Rezept des Tages</a></li>
";
$AusgabeLinksMenue[]="<li><a href=\"SucheInHP.htm\">Suche in der HP</a></li>
";
$AusgabeLinksMenue[]="<li><a href=\"Verschiedenes/BesucherDaten.php\">Über Sie</a></li>
";
$AusgabeLinksMenue[]="</ul>
";
$AusgabeLinksMenue[]="<div id=\"ausgabe\">
";
Die Identifizierer
id= für die Bereiche sind in der
zentralen CSS-Datei festgelegt (siehe dazu auch den Menüpunkt
Hilfe Menüsystem 1).
Ansonsten finden Sie hier nichts anderes, als den reinen Quelltext, den
Sie auch in der entsprechenden Webseite finden, wenn Sie den Schalter
Quelltext anzeigen in Ihrem
Browser betätigen. Allerdings sind alle Zeilen mit dem Programm
Escapen
behandelt worden, damit PHP die gewünschten doppelten Hochkommas auch
wirklich in der Zeile stehen lässt und nicht versucht, sie als
Zeichenfolgenbeginn oder -ende zu interpretieren und das
erzwingt nur einen Zeilenvorschub im Quelltext.
Wenn
Sie sich den Quelltext der Ergebnisseite der Suche bei meiner anderen
Webseite angesehen haben, dann werden Sie feststellen, dass alles was
zur
Kopfmenüzeile und zum
Kopfbild gehört am Ende des Quelltextes steht. Dies ist durchaus so gewollt.
$AusgabeKopfMenue=array("Alles was zum Kopfmenü gehört");
$AusgabeKopfMenue[]="
</div>
";
$AusgabeKopfMenue[]="</div>
";
$AusgabeKopfMenue[]="<div id=\"kopf_container\">
";
$AusgabeKopfMenue[]="<div id=\"kopf_Bild\">
";
$AusgabeKopfMenue[]="<img src=\"images/Name.jpg\" alt=\"Heinz-Jürgen Schymura\" WIDTH=\"208\" HEIGHT=\"40\">
";
$AusgabeKopfMenue[]="</div>
";
$AusgabeKopfMenue[]="<div id=\"kopf_Menue\">
";
$AusgabeKopfMenue[]="<ul id=\"kopfmenue\">
";
$AusgabeKopfMenue[]="<li><a href=\"Bilder/Bilder.htm\"> Bilder </a></li>
";
$AusgabeKopfMenue[]="<li><a href=\"Okkult/Okkult.htm\"> Okkult </a></li>
";
$AusgabeKopfMenue[]="<li><a href=\"Verschiedenes/Verschiedenes.htm\"> Verschiedenes </a></li>
";
$AusgabeKopfMenue[]="<li><a href=\"Wandern/Wandern.htm\"> Wandern </a></li>
";
$AusgabeKopfMenue[]="<li><a href=\"Impressum/Impressum.htm\"> Impressum </a></li>
";
$AusgabeKopfMenue[]="</ul>
";
$AusgabeKopfMenue[]="</div>
";
$AusgabeKopfMenue[]="</div>
";
Sollten Sie mit den Identifizieren und den vielen öffnenden
<div> und schließenden
</div> durcheinander kommen, so können Sie sich Ihre Ergebnisseite
hier testen lassen.