Ausgabe von x-tem bis x-tem Vorkommen eines Zeichens
Flo
- php
Hallo zusammen,
ich hab ein kleines Skript zur Volltextsuche in einer DB geschrieben das zu meinr Freude auch soweit tut, nun aber folgendes Problem:
Ähnlich wie bei den großen Suchmaschinen, soll nun die Fundstelle im Text inklusive einer bestimmten Zahl Wörter vor und nach dem Vorkommen des Suchausdrucks ausgegeben werden.
Wichtig dabei: Es sollen nicht einfach nur 50 Zeichen vor und nach dem Wort ausgegeben werden, weil das hässliche Wortverstümmelungen zur Folge hat, sondern wirklich an Leerzeichen orientiert.
Wer weiß vielleicht einen Trick oder sowas?
Danke für die Mühen
Flo
Huhu Flo
ich habe für so etwas mal folgenden regulären Ausdruck benutzt
$s='finde mich';
$range=80;
$reg = '/\s|^/ms';
wobei $range die Zahl der maximal auszugebenden Zeichen ist
und $s das zu suchende Textstück.
Ist jetzt nicht genau was du wolltest mit "n Wörtern" aber
Wortgrenzen (whitespace) werden hierbei auch berücksichtigt.
Vielleicht kannst Du ja was damit anfagen.
Viele Grüße
lulu
Dankeschön,
sieht schick aus...
Leider tuts nich so, wie erwartet. Es gibt mir den gesamten Text wieder... Hab auch am Range rumgespielt und sogar bis null runtergeschruabt und es tut trotzdem nich...
Grüße
Flo
Huhu Flo
<?php
$test="Huhu Flo, hier also mal ein Beispiel. Also das sollte mich doch <b>wundern</b>, wenn das nicht funktioniert. Das ist doch sogar mehrfach online und klappt immer? Nein nicht immer <i>aber</i> immer .... usw. <br>Viele Grüße lulu";
$s="funktioniert";
$range=10;
preg_match('/\s|^/ms',strip_tags($test),$keep);
echo $test;
echo '<hr>';
echo ' ... '.$keep[1].' ... ';
?>
evtl. bist du darüber gestolpert wie preg_match das Array der Treffer belegt.
<quote>
If matches is provided, then it is filled with the results of search. $matches[0] will contain the text that matched the full pattern, $matches[1] will have the text that matched the first captured parenthesized subpattern, and so on.
</quote>
Viele Grüße
lulu
Danke Lulu,
prinzipiell tut das wirklich, doch sobald ich meine Variablen anstelle Deiner fest definierten Texte $test und "funktioniert" setze, findet er nix mehr... *verzweifel*
Danke trotzdem
Flo
Ok - ich habs...
Dieser RegExp ist (zumindest mit preg_match) nicht Case-Sensitive und das bräuchte ich...
Werde mal weiter probieren...
Grüße
Flo
Ok: case-sensitive hab ich jetzt auch, aber trotzdem isses nochn Problem, wenn der gesuchte String am Anfang des zu durchsuchenden Strings steht...
Huhu
es funktioniert tatsächlich nicht für das erste und das letzte Wort.
Schade :-(
Viele Grüße
lulu