Such Ausgabe

Hi,

langsam verzweifle ich. Vielleicht kann mir jemand helfen. Ich will hier nicht keine Versuche Posten, die bisher eh noch nicht geklappt haben.

Problem:
Ich habe eine Suchanfrage. Diese durchsucht die Datenbank und liefert den Inhalt aus (macht diese auch soweit richtig).
Das Problem ist, das ich es nicht hinbekomm: Ich habe aus der Datenbank den Text. Dieser soll angezeigt werden ABER nur 10 wörter vor dem Text und 20 Wörter hinter dem Text.
Beispiel:
[…] 10 Wörter vor dem gesuchten Wort DASgesuchteWORT 20 Wörter nach dem gesuchten Wort […]
Ich bekomm es aber leider nicht hin egal welche funktionen ich kombiniere oder wie ich es versuche es kommt immer was anderes raus.

Danke schon mal im Vorraus für die mühe :slight_smile:

mfg 99shi

PHP Funktionen explode() und count() sollten dabei hilfreich sein.

oder besser preg_match. Da brauchst du keine for-Schleifen.

function getSubString($findme, $string) { $match = null; if(preg_match("#([^\s]{1,}\s){0,10}([^\s]{0,}){1}".$findme."([^\s]{0,}){1}(\s[^\s]{1,}){0,20}#", $string, $match) > 0) { return str_replace($findme, "<strong>".$findme."</strong>", $match[0]); } else { return "Not matched"; } }
Bitte überprüft das. Ich glaube, dass es so funktionieren müsste (case-sensitive). Ich weiß jetzt nicht, wie es sich verhält, wenn ein string mehrmals vorkommt, aber das muss der Entwickler selbst entscheiden.

[edit]$matches -> $match: jetzt müsste es funktionieren; anscheinend war $matches immer leer, und du bist woanders in eine Endlosschleife gelaufen[/edit]

@do-it-yourself: Danke für den Tipp. Leider hat die Funktion das was ich benötigte nicht erfüllt, bzw. eine Serverüberlastung hergestellt (Timeout after 30 sec).

@Balmung:
Ich habe es jetzt mit einer “foreach”-Schleife und “explode”, sowie diversen Variablen, welche ich immer um 1 hoch setzte, wenn ein Ergebnis gefunden wurde geschaft.

Den Code Poste ich hier nicht, da dieser nicht verständlich ist. Die Variablen, welche in diesem enthalten sind, befinden sich am Seitenanfang, daher ist es sinnlos diesen hier zu post, ohne ihn umzuschreiben. Wer doch Interesse hat, kann mich anschreiben dann werde ich den Code umschreiben, so das man Ihn versteht (Zumindest versuchen) :smiley:

mfg 99shi

PS: die Frage hat sich damit geklärt und kann geschlossen werden.