Suche programmieren
flista
- php
0 krueger0 Götz-1 Dieter Raber1 Tom0 Arthur Dent
Kennt jemand eine Seite, auf der man mir zeigt, wie man per PHP eine Homepagesuche programmieren kann? Geht das überhaupt ohne MySQL ?
http://tut.php-q.net/
http://tut.php-q.net/
Tut mir leid, aber da steht doch nicht, wie man eine Suche programmiert. Oder bin ich zu blöd zum suchen?
Hast recht, sorry.
Krueger
Hast recht, sorry.
Krueger
Nobody's perfect!
In diesem Sinne: Gute Nacht
flista
Hallo flista!
Kennt jemand eine Seite, auf der man mir zeigt, wie man per PHP eine Homepagesuche programmieren kann? Geht das überhaupt ohne MySQL ?
Lern doch erstmal die PHP-Grundlagen. Am besten davor noch allgemeine Programmiergrundlagen.
Siehe auch Wikipedia: Suche bzw. <http://de.wikipedia.org/wiki/Suchverfahren@title:Wikipedia: Suchverfahren>.
Und noch was: Natürlich kann man eine Suche auch ohne MySQL-Datenbank programmieren.
MfG
Götz
Lern doch erstmal die PHP-Grundlagen. Am besten davor noch allgemeine Programmiergrundlagen.
Kann ich schon: HTML, JavaScript, CSS und PHP-Grundlagen, aber _noch_ nicht mehr. Reichen Grundlagen? Oder muss da mehr sein? Und wenn das ohne MySQL geht, nach welchen Prinzip muss ich dann vorgehen?
Hallo flista!
[...] allgemeine Programmiergrundlagen.
Kann ich schon: HTML, JavaScript, CSS und PHP-Grundlagen, aber _noch_ nicht mehr. Reichen Grundlagen? Oder muss da mehr sein? Und wenn das ohne MySQL geht, nach welchen Prinzip muss ich dann vorgehen?
Zuerst mal haben HTML und CSS mit Programmiergrundlagen in etwa soviel zu tun, wie ein Brot mit nem Rasenmäher.
Und ja, an sich reichen Programmiergrundlagen, um sich an ner Suche zu versuchen würde ich behaupten (ich habe zwar noch nie eine Webseitensuche geschrieben, aber eine einfache Suche sollte ich schon hinbekommen).
Du mußt Dir halt zuerst mal überlegen, was für eine Suche Du haben willst: Index-Suche oder Volltext-Suche.
Wenn Du Dich für eine Index-Suche entscheidest mußt Du Dir überlegen, wie Du den Index aufbaust und nachher durchsuchen willst (bei kleineren Seiten ist es vermutlich einfacher nen Index "von Hand" zu erstellen, als sich tolle Algorithmen dafür zu überlegen).
Wenn Du weißt, was Du eigenetlich genau willst solltest Du mal in diese Richtung ein wenig Googlen. Wenn Du dann noch konkrete Fragen hast frag wieder ;)
MfG
Götz
Hallo flista,
Idealerweise benutzt du zum Suchen am besten eine Datenbank, es geht aber auch im Prinzip mit Textdateien. Bei Datenbanken ist es einfach, du legst eine Tabelle an, die mindestens ein Feld fuer die URL der Seite mit dem gesuchten Inhalt hat und eines mit dem relevanten Inhalt ebenjener Seite. In einer Textdatei kannst Du im Prinzip was Aehnliches machen, aber Du siehst an der Stelle schon, dass das kompliziert wird. Im Endeffekt ist eine Datenbank meiner Meinung nach die vernuenftigste Loesung, es muss ja nicht MySQL, SQLite reicht da voellig aus. Es gibt hier aber auch Leute, die sich ausgiebig mit Textdateien als DB-Ersatz beschaeftigt haben, suche einfach mal nach 'Flatfiles'.
Du brauchst jetzt zwei Sachen, naemlich einmal einen Weg um, wann immer du neue Inhalte veroeffentlicht hast, den Suchindex erstellt. Falls Deine Daten ohnehin schon aus einer Datenbank kommen, kann man das direkt mit SQL (mit etwas PHP drumherum, wenn man mag). Falls nicht, liest man halt alle entsprechen Dateien nacheinander ein und speichert URL und Inhalt.
Das zweite, was du brauchst, ist eine Funktion, die die eigentliche Suche macht. Im Prinzip wird also der Suchbegriff aus dem Textfeld erstmal aufgearbeitet, dann per SQL an die DB weitergeleitet und die gibt die passenden URLs zurueck. Was das Aufarbeiten des Suchbegriffs anbetrifft, so solltest du zumindest bestimmte Zeichenkombinationen daraus loeschen, um zu vermeiden, dass jemand Unfug mit deiner Datenbank treibt. Mal ganz einfach gesagt, wuerde ich mindestens alles loeschen was nicht Buchstabe oder Zahl ist, das ist schonmal ein guter Anfang.
Gruß,
Dieter
Hello,
Kennt jemand eine Seite, auf der man mir zeigt, wie man per PHP eine Homepagesuche programmieren kann? Geht das überhaupt ohne MySQL ?
Nein, eine Seite kenne ich nicht, aber ich kann Dir sagen, welche Funktionen Du benötigst:
glob() http://de3.php.net/manual/en/function.glob.php
Die Array-Funktionen http://de3.php.net/manual/en/ref.array.php
die Datei-Funktionen http://de3.php.net/manual/en/ref.filesystem.php
die String-Funktionen http://de3.php.net/manual/en/ref.strings.php
Du baust ein Formular auf, dass den Suchbegriff entgegenimmt.
Annahme:
Gehen wir mal davon aus, dass Du fünf verschiedene Themenbereiche hast, die jeweils über ein eigenens Verzeichnis verfügen und in diesem Verzeichnis die HTML-Seiten liegen. Du verwendest keine Frames. Die Leitseite der Kategorie heißt immer index.html, die Themenseiten dazu immer ***.html
Dann suchst Du mit Glob()ekursiv alle Verzeichnisnamen ab dem gewünschten Wurzelpunkt. Diese ergeben die Suchkategorien (gehe mal davon aus, dass die sinnvoll benannt sind)
Damit fütterst Du einselect-Feld (multiple)
Nun kann der Benutzer schon eingeben, in welchem Themenbereich er suchen will und was.
Nach dem Post (Suche) suchst Du alle Verzeichnisse aus dem Select nach *.html-Dateien (wieder mit Glob()) lädstm sie z.B. mit file_get_contents() in eine Variable, zeihst mit strip_tags() http://de3.php.net/manual/en/function.strip-tags.php die HTML-Tags, wandelst mit strtolower() den verbleibenden Inhalt um, suchst mit str_pos() das Vorkommen des (ebenfalls in Kleinbuchstaben umgewandelten) Suchbegriffes. Wenn er vorkommt, nimmst Du die URL der Seite in ein Ergebnisarray auf.
Am Ende gibst Du dem Benutzer das Ergebnisarray mit den URLs auf Deine Seiten aus.
Fertig ist Deine kleine Suchmaschine
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hi,
Kennt jemand eine Seite, auf der man mir zeigt, wie man per PHP eine Homepagesuche programmieren kann? Geht das überhaupt ohne MySQL ?
sehe ich das richtig, dass du _nur_ deine Seite(n) durchsuchen willst? Wenn ja, und wenn diese Seiten von Google indexiert wurden (also von Google gefunden werden), dann willst du dir vll. mal die Google Web APIs (http://www.google.com/apis/index.html)anschauen. Hier wäre dann die "Site Restricted Search" das, was du brauchst.
Gruß,
Arthur