Lieber Simon P.,
Suchergebnisse werden auf der Suche-Seite aufgelistet. Dein P-Parameter ist dann bedeutungslos. Oder er ist zwingend "p=search". Irgendwie hat alles andere von der Logik her keinen Sinn.
if (array_key_exists("s", $_GET)
&& array_key_exists($_GET["s"], $pages)
) {
> ... den Array-key nicht erkennt, wenn er nach dem kaufmännischen "Undzeichen" (&) steht. Also er erkennt den Array-Key nicht in dieser URL: index.php?p=seit1&s=suchtag
Was willst Du denn genau prüfen? Den Suchbegriff als GET-Parameter? Die Logik Deines Codes verlangt, dass wenn "s=Freibier" im URL steht, dass dann auch ein Parameter "Freibier=irgendwas" im URL steht. Also wird Dein IF-Statement nur dann als zutreffend gewertet, wenn etwa das hier als URL aufgerufen wurde:
/index.php?p=trallala&s=mein%20Suchbegriff&mein%20Suchbegriff=Freibier
Ist das so gemeint? Sicherlich nicht. Es scheint mir eher so, als wolltest Du prüfen, ob es einen Seiten-Schlüssel gibt, auf den der Suchbegriff passt. Wenn also "anime" als Suchbegriff eingegeben wurde, es in $pages also den Schlüssel "anime" gibt, dann soll das IF-Statement als zutreffend verstanden werden. Aber so wirklich zielführend für eine Volltext-Suche erscheint mir das noch immer nicht.
Im Grunde willst Du doch so vorgehen:
1\.) Suchbegriff(e) feststellen (lower case transformiert)
2\.) alle Seiten nach dem Textinhalt durchsuchen und Treffer in $array merken (Seitenschlüssel für P-Parameter)
3\.) Schöne Liste mit anklickbaren Links ausgeben, optional noch mit dem Seitentitel als Klicktext
Im Grunde brauchst Du dafür eine Funktion, die Dir den textuellen Inhalt eines HTML-Dokuments liefert, ohne Markup. Dann transformierst Du den Textinhalt nach lower case (wozu GrOß-/kLeInScHrEiBuNg beim finden?) und lässt Deine Suchbegriffe drüber laufen.
Liebe Grüße,
Felix Riesterer.
--
"Wäre die EU ein Staat, der die Aufnahme in die EU beantragen würde, müsste der Antrag zurückgewiesen werden - aus Mangel an demokratischer Substanz." (Martin Schulz, Präsident des EU-Parlamentes)