Hi Clemens.
Bin gerade auf eine sehr aufschlußreiche Seite gekommen:
http://www.arnep.de/wasistselfhtml?
Aufschlußreich? Auf jeden Fall amüsant (meinen zumindest die Leute, die mir Kommentare schreiben und darüber in diversen Foren diskutieren). Wieder mal was, mit dem man seine Zeit (mehr oder weniger sinnvoll) verbringen kann... ;-)
Einige Probleme schient es noch zu geben, teilweise werden von Google mehr stellen gefunden, als vom Orakel. Dazu noch drei technische Fragen:
- Wie kann man Google beibringen wirklich nur z.B.
nach "Heike mag" zu suchen und nicht nach "Heike Mag"
oder "Heike, Mag". die letzten beiden Treffer werden
bei der Sucheingabe "heike mag" ebenfalls gelistet,
aber nicht orakelt.
Das liegt daran, daß in meinem Script alles ausgefiltert wird, das nicht "Heike mag" entspricht, hier die entsprechende Zeile:
eregi("$name $typ ([^.!?]*)", $line, $out);
Kurze Erklärung: $name ist der entsprechende Name, $typ ist das Verb dazu (ist, mag, will etc.). Dieses wird im Ergebnis von Google gesucht, Groß und Kleinschreibung wird ignoriert.
Wenn es gefunden wird, ist es in $out[1] gespeichert und kann ausgelesen werden. Wenn ein es der Zeichen . ? ! auftritt, wird der String abgeschnitten (könnte man noch besser machen, da bei Abkürzungen und Aufzählungen auch abgeschnitten wird). Nun werden alle Ergebnisse mit weniger als 10 Zeichen herausgefiltert und der Rest ausgegeben.
Durch all diese Mechanismen kann es vorkommen, daß einige Suchergebnisse, die Google ausgibt, verlorengehen, z.B. wenn etwas anderes als ein Leerzeichen zwischen den Wörtern ist.
- Das Script wird wohl nur mit <form method="post">
abgeschickt, was wird denn ohne action-Attribut auf-
gerufen?
Das Script ruft sich selbst auf, dann wird es weitergeleitet an den entsprechenden URL passend zum Namen, z.B. http://arnep.de/wasmagheike?. Wenn ein anderer Name/ ein anderes Verb eingegeben wird, wird der entsprechende URL erzeugt. Der URL wird von mod_rewrite auseinandergenommen und an das Script weitergeleitet.
- wie wird denn die URL verarbeitet /wasistselfhtml?
oder /wasmagheike? /wasist oder /wasmag funktioniert
alleine nicht.
Wie gesagt, per mod_rewrite, hier die entsprechende Zeile aus der Datei .htaccess:
RewriteRule ^wasist(.*)$ /orakel-script.php?name=$1&typ=ist [L,QSA]
Hierfür sind ein paar Regex-Kenntnisse notwendig:
^ bezeichnet den Anfang der Zeile, also müssen die ersten Zeichen "wasist" sein.
(.*) gibt alle Zeichen zurück, die folgen, so viele wie möglich. Die Klammer sorgt dafür, daß die Zeichen "eingefangen" werden und in $1 gespeichert werden.
$ ist das Zeilenende, also wird von (.*) alles bis zum Zeilenende zurückgegeben
Nun wird das Script aufgerufen (Name geändert ;-) mit den Parametern name und typ. name wird der "eingefangene" Name $1 übergeben, typ wird entsprechend angepaßt. Wofür [L,QSA] zuständig ist, kann ich Dir im Moment nicht sagen, da müßte ich nachschauen...
(heute etwas neugierig ;-)
Naseweis! ;-)
Hoffe, alle Fragen geklärt zu haben und das Mysterium des Orakels nicht zerstört zu haben... ;-)
MfG, Arne P.