Heinz-Jürgen Schymura

SucheInHP.php


Das PHP-Quelltext Programm SucheInHP.php benötigt auf dem Server im gleichen Verzeichnis, in dem es sich selbst befindet die Konfiguration- und Steuerdatei Such_Erst_Config.php. In dieser werden nicht nur Konstanten definiert, sondern auch Arrays erzeugt oder überschrieben. Diese Datei wird auch von dem PHP-Quelltexprogramm Such_Erstellen.php genutzt, das die Datei SuchIndex.TXT, oder wie Sie sie auch immer in den Definitionen in der Datei Such_Erst_Config.php genannten haben mögen, erstellt. Dass beide Programme die gleiche Steuerdatei nutzen ist durchaus Absicht, denn da das eine Programm die SuchIndex.TXT erzeugt, und das andere Programm in ihr entsprechend sucht, müssen sie beide die gleichen Zeichenfolgen verwenden.
Wieder sind alle Verzeichnisangaben von der Datei index.php aus zu rechnen und bitte beachten Sie, was unter dem Menüpunkt Hilfe Menüsystem 1 index.php zu Konstanten und Arrays geschrieben wurde.
define("SUCH_INDEXPHP","index.php");
define("SUCH_SPEICERVERZEICH","_suchen");
define("SUCH_INDEXDATEINAME","SuchIndex.TXT");
define("SUCH_HP_HOLDATEN","SucheInHP_HolDaten.php");
define("SUCH_HP_ERGEBNIS","SuchErgebnis.php");
define("SUCH_MENUEDATENVERZEICH","php/Menue");
define("SUCH_ALL_MENUEKOPF_DATEINAME","Menue_Allgemein_Konst.php");
define("SUCH_MENUEKOPF_DATEINAME","Menue_Kopf_Konst.php");
define("SUCH_BILDER_KONST_NAME","php/bilder/inc/Bilder_IM_Konst.php");
define("SUCH_ZEICHENLINK","<AUFRUF---------->");
define("SUCH_ZEICHENTITEL","<TITEL---------->");
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");
define("SUCH_ZEIGEN_STRING","Anzeigen");
define("SUCH_START_NUTZEN_IM_LINK","<u>");
define("SUCH_ENDE_NUTZEN_IM_LINK","</u>");
Hinter SUCH_HP_HOLDATEN schreiben Sie bitte den Namen Ihrer Maske, bei der der Besucher seine Suchbegriffe eingeben kann und auch die weiteren Festlegungen wie nur ganze Wörter, Groß- und Kleinschreibung beachten, auch in den Titeln der einzelnen Webseiten suchen festlegen kann.
Hinter SUCH_ZEIGEN_STRING schreiben Sie bitte den Text, der hinter einer gefundenen Stelle als Link zu der Stelle angezeigt werden soll, hier also einfach Anzeigen.
Was SUCH_ZEICHENLINK und SUCH_ZEICHENTITEL bedeuten erschließt sich sofort, wenn Sie sich die Datei SuchIndex.TXT nur einmal ansehen.
Bei SUCH_MENUEDATENVERZEICH ist das schon anders, hiermit ist das Verzeichnis gemeint, in dem Sie Ihre Konfigurations- und Steuerdateien für das Menü gespeichert haben, bei mir also php/Menue.
Bei SUCH_ALL_MENUEKOPF_DATEINAME tragen Sie bitte den Namen der Steuerdatei ein, in der Sie die allgemeinen Konstanten definiert haben, bei mir also Menue_Allgemein_Konst.php. Und zwar steht die natürlich im hinter SUCH_MENUEDATENVERZEICH angegebenen Verzeichnis.
Für die Angaben hinter SUCH_MENUEKOPF_DATEINAME gilt ähnliches, hier sind die speziellen Angaben für die MenüKopfzeile gemeint.
Wenn Sie sich meine Datei SucheInHP_HolDaten.php anschauen, die die Daten des Besuchers abholt, dann finden Se die Einträge wieder, die hinter SUCH_SUCHBEGRIFFE, SUCH_GROSS_KLEINSUCH_GANZES_WORT und SUCH_MIT_TITEL von mir eingegeben wurden. Sie können so also die betreffenden Zeichenfolgen festlegen, wie Sie es möchten, denn der Besucher könnte sich ja den Quelltext der Eingabemaske in seinem Browser anzeigen lassen.
Was dann noch fehlt sind die Angaben hinter SUCH_BILDER_KONST_NAME. Hier geben Sie den Namen der Datei an, in der die Konstanten für die Anzeige von Bildern definiert sind. Bei  mir liegt die ebenfalls im Verzeichnis php, jedoch im Unterverzeichnis bilder und dann im weiteren Unterverzeichnis inc und  heißt Bilder_IM_Konst.php.
Für SUCH_START_NUTZEN_IM_LINK und auch für SUCH_ENDE_NUTZEN_IM_LINK muss ich etwas vorgreifen. Bei den Arrays, die weiter unten in der Datei Such_Erst_Config.php folgen können Sie festlegen, welche Inhalte aus den Dateien nicht übernommen werden sollen. Dies werden wohl auch HTML-Sequenzen sein, etwa, ein Link auf eine Seite oder ein Link auf ein Bild oder ähnliches. Wenn Sie jedoch bei einem Link etwa nachfolgendes zu stehen hätten:
<a href="http://www.heinz-juergen.schymura.de/" target="_blank">Wanderwebseite</a>,
dann würde natürlich auch das Wort Wanderwebseite nicht mit in die SuchIndex.TXT übernommen werden, da Sie ja vermutlich ab <a href= bis hin zu </a> alles entfernen lassen würden. Sie könnten jedoch jedoch etwas spezielles nutzen, so dass auch innerhalb der zu entfernenden Sequenzen noch nach "brauchbarem" gesucht werden kann. Ich unterstreiche zum Beispiel das/die Wort(e), die ich doch übernehmen möchte, ehe ich einen Link setze. Das deshalb, weil die Links ja bei fast allen Besuchern auch unterstrichen dargestellt werden. Es fällt also meist nicht auf, dass ich auch noch zusätzlich unterstreiche. So würde also der oben gezeigte Link bei mir so aussehen:
<a href="http://www.heinz-juergen.schymura.de/" target="_blank"><u>Wanderwebseite</u></a>

Nun kann ich hinter SUCH_START_NUTZEN_IM_LINK <u> eingeben und hinter SUCH_ENDE_NUTZEN_IM_LINK </u> und schon wird das Wort Wanderwebseite in die Datei SuchIndex.TXT übernommen.
Mit dem ersten Benennen eines Arrays erzeugt man ein Array, oder überschreibt ein bereits bestehendes Array mit gleichem Namen.
$Ausschluss_Verzeichnisse = array("Ich bin das erste Element");
Dies würde ein Array mit den Namen $Ausschluss_Verzeichnisse erzeugen, das aus einem Element besteht.
An bestehende Array kann man neue Elemente anhängen durch
$Ausschluss_Verzeichnisse[] = ("Und ich das zweite");
Nun noch etwas zu der Zählweise bei PHP. Das erste Element hat die Zahl 0, das zweite die Zahl 1 und so weiter. 
So habe ich also bei allen verwendeten Arrays immer das erste (0) Element genutzt, um den Sinn des Arrays zu beschreiben, im Menüsystem 1 wird dies erste Element nie verwendet!
Bei meiner Wanderwebseite sind in der Datei Such_Erst_Config.php die Arrays so definiert:
$Ausschluss_Verzeichnisse = array("Ausgeschlossene Verzeichnisse");
$Ausschluss_Verzeichnisse[] =("_private");
$Ausschluss_Verzeichnisse[] =("_suchen");
$Ausschluss_Verzeichnisse[] =("images");
Ich habe also 3 Verzeichnisse total ausgeschlossen, die Dateien in ihnen werden nicht berücksichtigt.
$Ausschluss_DateiTypen= array("Ausgeschlossene Datei Typen");
$Ausschluss_DateiTypen[] =(".jpg");
$Ausschluss_DateiTypen[] =(".gif");
Und dann sind noch 2 Dateitypen ausgeschlossen.
$Html_sonderfall_entferne_start = array("Zu entfernende Html Sequenzen Start");
$Html_sonderfall_entferne_start[] =("<a href=");
$Html_sonderfall_entferne_start[] =("<form ");
$Html_sonderfall_entferne_start[] =("<script ");
$Html_sonderfall_entferne_start[] =("<img scr=");
Ich will also die Linkstrings und auch die Inhalte von Formen, Scripts etc. nicht mit in der Datei SuchIndex.TXT haben, es sei denn, ich hätte sie wie oben beschrieben, extra gekennzeichnet.
$Html_sonderfall_entferne_ende = array("Zu entfernende Html Sequenzen Ende");
$Html_sonderfall_entferne_ende[] =("</a>");
$Html_sonderfall_entferne_ende[] =("</form>");
$Html_sonderfall_entferne_ende[] =("</script>");
$Html_sonderfall_entferne_ende[] =("\">");
Und hier bei Ende der Sequenzen ist es sehr wichtig, dass ich die gleiche Reihenfolge (von oben nach unten) einhalte, die ich beim Start angewendet habe. Denn sonst würde das PHP-Quelltextprogramm eventuell versuchen hinter den Beginn eines Scripts nach dem Ende eines Links zu suchen!
Diese saubere Einhaltung der Reihenfolge ist bei allen Arrays in allen Steuerdateien für das Menüsystem 1 extrem wichtig.
Schon allein deshalb sollten Sie, wenn irgend möglich, die Steuerdateien (Konstanten und Arrays) mit den entsprechenden Generatoren erzeugen. 
Außerdem sehen Sie hier in der letzten $Html_sonderfall_entferne_ende Zeile ein von links nach rechts verlaufenden Schrägstrich vor einem doppelten Hochkomma. Das bedeutet für PHP: Nehme diese Hochkomma nicht als Zeichenbegrenzer einer Zeichenfolge sondern siehe es als das Zeichen Hochkomma in einer Zeichenfolge an.
Wenn Sie dann eine fertige Webseite haben, die mit diesem Menüsystem 1 arbeitet und sich dann die Datei SuchIndex.TXT mit dem PHP-Quelltextprogramm Such_Erstellen.php erstellt haben, dann steht einer Suche in Ihrer Webseite auch nichts mehr im Wege. Sie müssen nur dafür sorgen, dass bei Änderungen und Aktualisierungen jeweils eine neue SuchIndex.TXT erstellt wird.