Heinz-Jürgen Schymura

Such_In_Html.php


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.