• 18.05.2024, 00:30
  • Registrieren
  • Anmelden
  • Sie sind nicht angemeldet.

 

Lieber Besucher, herzlich willkommen bei: Aqua Computer Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

Suchscript für die eigene HP

Sonntag, 13. Juni 2004, 19:43

Ich habe auf meiner HP ein Verzeichnis, in dem alle Fotoalben ebefalls als Verzeichnisse abgelegt sind. Die Namen der Verzeichnisse sind in einer SQL-Datenbank abgespeichert. In jedem dieser Verzeichnisse ist eine "_foto.txt"-Datei, in der die Kommentare für das jeweilige Fotoalbum abgespeichert sind.

zum Beispiel:

ALBEN
|
- Geburtstag
* _foto.txt
* img001
* img002
...
- Party
* _foto.txt
* img005
* img006
...

Jetzt möchte ich per Suchbegriff in all diesen TXT-Dateien suchen können, um die Navigation und den Komfort auf der HP zu verbessern. Ist soetwas möglich, oder muss ich jetzt alles für die SQL-Datenbank umschreiben?
Arbeiten am Mac ist natürlich keine Arbeit, sondern sinnvoll gestaltetes Glück.

moede

Senior Member

Re: Suchscript für die eigene HP

Sonntag, 13. Juni 2004, 23:34

Sollte schon gehen. Für PHP halt. Durchlaufe die ganze Tabelle damit du alle Verzeichnisse bekommst. Dann kannst du
die Dateien auslesen:

$file = trim(file($text_path));
             
// Hier stand überflüssiger text ;D

Jetzt hast du ein Array mit allen Textzeilen drin, jetzt kannst du mit
array_search ( mixed needle, array haystack [, bool strict])

das array durchsuchen und weist jetzt welchem Bild der Suchstring entspricht, so kannst du alle Verzeichnise durchgehen.
Hoffe das hilft dir, ansonsten Mail oder PM

peace
moede

Re: Suchscript für die eigene HP

Montag, 14. Juni 2004, 16:20

erstmal ein array mit den dateinamen erstellen, aus der db oder aus nem directory einlesen, je nachdem.

dann in einem loop für jedes file:

das file folgendermaßen einlesen:
$filedata = strip_tags(implode('', file($filename)));

mit preg_match (perl compatible regular expressions) den suchbegriff suchen:
if (preg_match('.*' . preg_quote($_POST['pattern']) . '.*', $filedata)) {
$matches[] = $filename;
}

Re: Suchscript für die eigene HP

Montag, 14. Juni 2004, 19:48

kommt das mit dem suchen öfter vor?

denn schneller und komfortabler ginge die suche in der datenbank.
besonders wenn man wirklich viele dateien zu durchsuchen hat.
ich hab sowas mal für eine ganze webseite gemacht, da muss man dann schon ein paar sekunden bis minuten warten bis alle dateien im volltext durchsucht wurden.

dann würde ich überlegen ein script zu schreiben das die daten aus den dateien einmalig in die datenbank schreibt (wenn es viele dateien sind, sonst kann man das auch von hand machen).

und ein script das darin sucht.

aber probier auf die schnelle erstmal die anderen vorschläge aus,vielleicht reicht die geschwindigkeit ja.
Gott hat die Welt ja nur in sieben Tagen erschaffen können, weil es keine installierte Basis gab.

Re: Suchscript für die eigene HP

Montag, 14. Juni 2004, 22:31

Zitat von »crushcoder«

kommt das mit dem suchen öfter vor?

denn schneller und komfortabler ginge die suche in der datenbank.
besonders wenn man wirklich viele dateien zu durchsuchen hat.
ich hab sowas mal für eine ganze webseite gemacht, da muss man dann schon ein paar sekunden bis minuten warten bis alle dateien im volltext durchsucht wurden.

dann würde ich überlegen ein script zu schreiben das die daten aus den dateien einmalig in die datenbank schreibt (wenn es viele dateien sind, sonst kann man das auch von hand machen).

und ein script das darin sucht.

aber probier auf die schnelle erstmal die anderen vorschläge aus,vielleicht reicht die geschwindigkeit ja.

- es gibt auch indizes :)
- je mehr daten und mehr füllwörter (nach denen nicht gesucht werden soll), desto eher empfiehlt sich eine tabelle rein für suchbegriffe. die muss hin und wieder aktualisiert werden, aber dann is auch schon bald das maximum an möglicher effizienz erreicht.
- ich denke, die daten sind in der DB besser als in einzelnen textdateien aufgehoben, zumal man dann noch flexibel weitere features hinzufügen kann

Re: Suchscript für die eigene HP

Montag, 14. Juni 2004, 22:45

oh sorry, das las sich so als ob die suche in der datenbank mehrere minuten dauert.
natürlich die ursprüngliche suche durch die textdateien.

inzwischen ist die website eh in der datenbank als cms. und natürlich indiziert ;)
Gott hat die Welt ja nur in sieben Tagen erschaffen können, weil es keine installierte Basis gab.