HTML Template und Suchfunktion...
Forum » Fachdiskussionen / Programmierung und Datenverwaltung » HTML Template und Suchfunktion...
started by: tomatetomate
on: 1208105102|%e %b %Y, %H:%M %Z|agohover
number of posts: 5
rss icon RSS: new posts
HTML Template und Suchfunktion...
tomatetomate 1208105102|%e %b %Y, %H:%M %Z|agohover

Hallo zusammen,

bzw, noch bin ich ja alleine und zudem auch noch der erste.
Ich trau mich eigentlich gar nicht eine Frage stellen.
So alleine wie ich hier noch bin… . Aber das änder sich
ja sicherlich bald.

Erstmal herzlichen Dank für das phantastische Werk. Ohne SELF-HTML
und das Buch wäre ich warscheinlich nie dazu gekommen Internetseiten
zu machen.

So, nun aber meine Frage.
Im Listing 12.4 ist der Code der linkweb.tpl abgebildet.

Dort findet man unter anderem die Zeile

<form id="search" action="search.php" method="get">

Auf die search.php, bzw. auf das gesamte Thema "wie kann
ich meine Internetseite durchsuchbar machen" wird leider
nicht eingegangen.

Gibt es dazu vielleicht eine Ergänzug, Links und oder Tipps?

Viele Grüße!
Tomate

unfold HTML Template und Suchfunktion... by tomatetomate, 1208105102|%e %b %Y, %H:%M %Z|agohover
Re: HTML Template und Suchfunktion...
StefanMStefanM 1208113756|%e %b %Y, %H:%M %Z|agohover

Hallo Tomate,

erst mal danke für deinen Mut, einfach so in dieses noch sehr leere Forum zu posten! :-)

Auf die search.php, bzw. auf das gesamte Thema "wie kann ich meine Internetseite durchsuchbar machen" wird leider nicht eingegangen.

Das ist ja auch ein Fass ohne Boden. Denn es spielen da diverse Faktoren mit rein:

  • Umfang der zu durchsuchenden Inhalte (10 Webseiten, 1000 Webseiten, 100000 Webseiten)?
  • Speicherung der Seiteninhalte (statisches HTML, Inhalte in Dateien, Inhalte in Datenbank)?
  • Intelligenz der Suche (Relevanz, Erkennung unterschiedlicher Schreibweisen oder Synonyme usw.)?
  • Beanspruchung der Suche (10 User am Tag, 1000 User, 100000 User)?

Ich vermute jetzt aber mal eher, dass sich deine Frage auf ein eher kleineres Webprojekt bezieht, das vielleicht mit PHP, Templates und Seiteninhalten in Textdateien arbeitet, so wie in dem linkweb-Beispiel im Buch. In diesem Fall gibt es kein CMS oder so was, sondern du erstellst die Textdateien mit den Seiteninhalten einfach in einem normalen Texteditor. Du hast mal angenommen 50 Seiten, also 50 Textdateien mit HTML-formatierten Inhalten, und diese Anzahl wird sich im Laufe der nächsten ein, zwei Jahre wahrscheinlich höchstens verdoppeln. Du hast vielleicht 10 Kilobyte Netto-Text (HTML-Tags abgezogen) in jeder Textdatei.

In diesem Fall bewegt sich der Gesamt-Netto-Inhalt des Webprojekts für absehbare Zeit zwischen einem halben und einem Megabyte. Peanuts also, genau betrachtet. Solange also nicht gerade 100 User gleichzeitig suchen und du keine wahnsinnigen Ansprüche an die Intelligenz einer Suche hast, ist in diesem Fall eine simple Volltextsuche ohne Datenbank und Index durchaus zu empfehlen.

Allerdings würde ich dabei empfehlen, die zu durchsuchenden Daten in einer einzigen Datei zu sammeln. Das heißt, du könntest einfach in einer Datei z.B. namens search.txt nochmals alle Seiteninhalte notieren. Nachteil: bei jeder Änderung von Seiteninhalten musst du an zwei Stellen editieren. Ist bei 50 Seiten und angenommenen 10 Änderungen im Monat aber keine unzumutbare Arbeit.

Wenn du keine Relevanz oder solche Features für deine Suche benötigst, solltest du in der Volltextsuchdatei alle HTML-Tags entfernen (diverse Texteditoren bieten ja eine "Strip-all-Tags"-Funktion dazu an). Die Datei benötigt jedoch Markierungen in einheitlicher Syntax, welche Inhalte zu welcher Webseite gehören. Beispiel:

~~~ /?name=irgendeinseitenname

Das in einer eigenen Zeile notiert, und unterhalb davon der Seiteninhalt der Seite mit dem Namen irgendeinseitenname. Nun brauchst du nur noch ein PHP-Script, halt so eine search.php, die aufgerufen wird, wenn der User im Suchfeld was eingibt. Das Script öffnet die search.txt, liest diese komplett ein, sucht darin nach dem vom User eingegebenen Ausdruck und gibt eine HTML-formatierte Liste mit Links zu allen gefundenen Seiten aus, in denen der Suchausdruck vorkommt.

Das ist jetzt natürlich keine fertige Lösung, sondern nur ein Denkanstoß. Konkretere Fragen kann man ja bei Bedarf diskutieren.

viele Grüße
Stefan Münz

unfold Re: HTML Template und Suchfunktion... by StefanMStefanM, 1208113756|%e %b %Y, %H:%M %Z|agohover
Re: HTML Template und Suchfunktion...
tomatetomate 1208171854|%e %b %Y, %H:%M %Z|agohover

Hallo Stefan,

leider ist die betreffende Seite historisch bedingt ungünstig gewachsen.
Momentan ist es so.
Es sind insgesamt ca. 80 Seiten auf 50 Ordner verteilt. Jede Seite besteht
aus einigen Textabschnitten. Jeder Textabschnitt wird in einer extra Textdatei
gespeichert. Ich habe z.B. eine Seite mit 66 einzelnen Textdateien, da es
auf dieser Seite 66 einzelne Textabschnitte gibt. Das ganze gibt es dann auch
noch in vier Sprachen.

Ich habe das deshalb so gemacht, da jeder einzelnen Textabschnitt mit einem
kleine Online-Editor bearbeitet werden kann. Da dieser kleine Online-Editor
(selber gemacht) weder mit Bildern noch mit Tabellen umgehen kann, musste ich
diesen Weg wählen.

Das ganze ist wahrscheinlich recht aussichtslos…?

Viele Grüße!
Tomate (Detlef)

unfold Re: HTML Template und Suchfunktion... by tomatetomate, 1208171854|%e %b %Y, %H:%M %Z|agohover
Re: HTML Template und Suchfunktion...
StefanMStefanM 1208197121|%e %b %Y, %H:%M %Z|agohover

Hallo Tomatendetlef,

Jede Seite besteht aus einigen Textabschnitten. Jeder Textabschnitt wird in einer extra Textdatei gespeichert. Ich habe z.B. eine Seite mit 66 einzelnen Textdateien, da es auf dieser Seite 66 einzelne Textabschnitte gibt. Das ganze gibt es dann auch noch in vier Sprachen.

OK. Aber dann gibt es ja auch irgendeine Zuordnungsregel, aufgrund deren das Script, das die Webseiten am Ende zusammenbaut, weiß, welche Textabschnittsdateien zu welcher Webseite gehören. Also kannst du dir auch ein Script schreiben, das sämtliche Textabschnittsdateien der Reihe nach einliest und deren Inhalte in eine große Datei schreibt - die Suchdatei. Dieses Arbeisscript kannst du z.B. in deinen Online-Editor integrieren. Einfach einen Link "Suchindex erstellen" einbauen, der das Script aufruft. Dieses tut seine Arbeit, also alle Textabschnittsdateien in eine große Suchdatei einzulesen, und am Ende gibt es einfach "fertig" oder so was aus :-)

Dann brauchst du noch ein Script, das die Suche durchführt. Es wird dann aufgerufen, wenn ein User im Suchformular auf der Website was eingibt, und erhält die Suchanfrage als GET- oder POST-Daten. Es muss die Suchindex-Datei so durchsuchen, dass es herausbekommt, ob ein Suchbegriff darin vorkommt, und wenn ja, muss es sich die URL der zugehörigen Webseite merken und am Ende alle gemerkten Webseiten-URLs als anklickbare Liste ausgeben.

Das ist jetzt natürlich auch wieder keine fertige Lösung, sondern nur die Skizzierung einer möglichen Vorgehensweise.

viele Grüße
Stefan Münz

unfold Re: HTML Template und Suchfunktion... by StefanMStefanM, 1208197121|%e %b %Y, %H:%M %Z|agohover
Re: HTML Template und Suchfunktion...
Anonymous (192.168.0.59) 1208764205|%e %b %Y, %H:%M %Z|agohover

Ok, dann danke ich Dir erstmal für die Tipps.
Mal schauen, wie weit ich komme.

Vielen Dank!
Tomate

unfold Re: HTML Template und Suchfunktion... by Anonymous (192.168.0.59), 1208764205|%e %b %Y, %H:%M %Z|agohover
new post
page_revision: 2, last_edited: 1208468043|%e %b %Y, %H:%M %Z (%O ago)