Moin,
ich bin zwar kein blutiger Anfänger mehr aber noch weit entfernt davon, richtig gut zu sein. Trotzdem hab ich mich mal daran gemacht, einen Blog zu programmieren. Eine gute Idee, denn ich habe bereits eine Menge gelernt und die wichtigsten Blog-Funktionen bereits fertig. Trotzdem habe ich ein Problem, das ich auch mithilfe des treuen PHP Manuals nicht lösen konnte.
Gegenstand:
Zur Zeit arbeite ich an einer Suchfunktion. Wenn ich zum Beispiel als suchbegriff "bla" eingebe, dann soll mein Script, sofern es passende Einträge findet, diese auf folgende Weise formatiert zurückgeben:
- es soll einen Textausschnitt liefern, der jeweils bis zu 30 Zeichen vor und nach dem ersten auftauchen des Suchwortes mit einschließt
- es soll darin das Suchwort in <strong> Tags einschließen
- und den auf diese Weise formatierten Text schließlich ausgeben
Das Problem:
Wenn ich bspw. so scripte:
dann gibt mit PHP die strpos mit einem riesig großen Wert an, der unmöglich die strpos sein kann (3691647).
Da ich nun den jeweiligen Eintrag zunächst aus einer MySQL Tabelle auslese, habe ich mir auch erlaubt, meine Frage im SQL / Datenbanken Forum zu posten. Die Admins mögen ihn bitte verschieben, falls sie der Meinung sein sollten, er sei hier falsch.
hier noch der Code, indem sich mein Fehler verstecken muss:
ich bin zwar kein blutiger Anfänger mehr aber noch weit entfernt davon, richtig gut zu sein. Trotzdem hab ich mich mal daran gemacht, einen Blog zu programmieren. Eine gute Idee, denn ich habe bereits eine Menge gelernt und die wichtigsten Blog-Funktionen bereits fertig. Trotzdem habe ich ein Problem, das ich auch mithilfe des treuen PHP Manuals nicht lösen konnte.
Gegenstand:
Zur Zeit arbeite ich an einer Suchfunktion. Wenn ich zum Beispiel als suchbegriff "bla" eingebe, dann soll mein Script, sofern es passende Einträge findet, diese auf folgende Weise formatiert zurückgeben:
- es soll einen Textausschnitt liefern, der jeweils bis zu 30 Zeichen vor und nach dem ersten auftauchen des Suchwortes mit einschließt
- es soll darin das Suchwort in <strong> Tags einschließen
- und den auf diese Weise formatierten Text schließlich ausgeben
Das Problem:
Wenn ich bspw. so scripte:
Code:
echo strpos($eintrag, $suchwort)
Da ich nun den jeweiligen Eintrag zunächst aus einer MySQL Tabelle auslese, habe ich mir auch erlaubt, meine Frage im SQL / Datenbanken Forum zu posten. Die Admins mögen ihn bitte verschieben, falls sie der Meinung sein sollten, er sei hier falsch.
hier noch der Code, indem sich mein Fehler verstecken muss:
Code:
while($row = $result->fetch_object()) { $entry = $row->entry; if($pos = strpos($entry, $search_str)) { echo $pos; $min_pos = $pos - 30; $max_pos = $pos + 30; $entry_piece = substr($row->entry, $min_pos, $max_pos); $entry_piece = str_replace($search_str, "<strong>".$search_str."</strong>", $entry_piece); $entry_piece = "\"..." . trim($entry_piece) . "...\""; echo "<div class=\"searchResult\"><h2>"; echo "<a href=\"" . ROOT_URL . "?area=main&page_id=" . $row->entry_id . "&" . SID . "\">"; echo $row->title . "</a></h2>\n"; echo "<p>" . $entry_piece . "</p></div>\n"; } }
Kommentar