Hallo!
Das ist die schlichteste und ineffektivste Methode. Bei vergleichsweise statischen Inhalten, also solchen, die sich nicht dauern, ist es in jedem Fall besser, mit einem Index zu arbeiten.
Ja, das hat mir mein Gefühl auch gesagt, nur bin ich nicht sicher wie so ein index vernünftigerweise aussieht, so dass er schnell zu durchsuchen ist. Also im Falle einer indexdatei, wie bei der Forumssuche. Vom prinzip, wie würdet Ihr/habt Ihr die Index DAtei aufgebaut und wie genau durrchsucht Ihr die Datei?
Dazu brauchst du zwei Scripts: ein reines Arbeitsscript, das wie oben beschrieben verzeichnisweise aus allen Seiten, die durchsuchbar sein sollen, die Daten herausliest und in irgendeine, fuer das Suchscript auslesbare Datei schreibt, und zwar nach irgendeiner Konvention, die das Suchscript beim Auslesen anwenden kann. Das Arbeitsscript muss dann jedesmal angestossen werden, wenn der durchsuchbare Datenbestand aktualisiert werden soll. (An dieser Stelle zeigt sich uebrigens ein typischer Vorteil von Perl - man kann damit eben auch problemlos mal reine, kommandozeilenorientierte Arbeitsscripts schreiben ... jaja,. ich weiss, "irgendwie" geht das mit PHP auch *g*).
Ja, sicher geht das in PHP ;-) Ich wüßte nur nicht wie ich es automatisch bei Änderung einer Datei anstoßen würde, vom Browser oder per Cron oder SSH kein Thema. Aber hast Recht, diese Trennung ist notwendig!
Die Index-Datei mit den durchsuchbaren Daten kann ruhig eine gewisse Groesse bekommen. Ein paar Megabyte sind voellig unkritisch und lassen sich auf modernen Rechnern in Bruchteilen von Sekunden sequentiell durchsuchen.
Das stimmt, aber auch nur solange man weiß wie man schnell sucht, es gibt ja bestimmt schnelle und langsame reguläre Ausdrücke bzw. Strukturen für einen solchen Index, oder?
Ich denke aber, eine DB wird auch bei 100 Seiten schon schneller sein, oder?
- ich finde auch html-Tags
- bei .php Seiten finde ich auch den ganzen php-Code.
Wahrscheinlich kann man die letzten beiden Punkte durch einen guten regulären Ausdruck ausklammern, aber der erste erscheint mir sehr schwerwiegend.
Dafuer gibt es Module oder Funktionen. In PHP gibt es z.B. so eine strip-all-tags-Funktion. Die Muehe, die eingelesenen Daten noch ein bischen zu bearbeiten, um nur die wirklichen Nutzdaten herauszuziehen, solltest du dir auf jeden Fall machen!
Wie Michael richtig angedeutet hat, wäre die Semantik nicht uninteressant, daher bräuchte ich doch ein paar reguläre Ausdrücke.
Viele Grüße
Andreas