Aus einem String (Text) Suchbegriffe markieren und in Liste ausgeben

laoveja

Grünschnabel
Hallo Leute,

ich habe ein Array in dem steh ein Text ( ca. 1 DIN A4 Seite) in diesm Text der aus einer Datenbank kommt möchte ich ein Wort suchen welches ca. 20 Stellen vorher un 20 Stellen nachher mit in einer Ausgabeliste anzeigt wird rausfiltern.Ich möchte eine Suche machen die aber nur auf eine bestimmte Tabelle in meiner DB losgeht. Alles was ich jetzt mit den einzelnen String funktionen versucht habe raus zufiltern bringt mir irgendwie nicht das gewünschte ergebnis. :( Weiß jemand evtl. einen rat!

danke
und gruss
 
Moin,
Ich würde da sowas wie das hier machen

Code:
  $searchString = "Jödeldödel";
  for ($n=0; $n<sizeof($textArray); $n++)
  {
    if ($textArray[$n] == substr($searchString,0,1)
    {
      for ($i=1; $i<strlen($searchString); $i++)
      {
        if($textArray[$i+$n] == substr($searchString,$i,1)
        {
          //Wenn das bis zum Ende läuft dann is der String gefunden...      
        }
      }
    } 
  }

so ungefähr würde ich das machen, hab aber nu keine Lust mehr, is ja schon spät ;)

mfg daniel
 
Ich würde ja auch gerne Helfen, aber ich verstehe in keinster Weise deine Problemstellung. Villeicht liegt es an mir, da ich in den letzten 3 Tagen durchschnittlich nur 2,33 Stunden Schlaf hatte, aber ich kann mir absolut nicht unter dem was du schreibst vorstellen *grübel* *gähn*
 
Moeglicherweise hilft Dir ja diese Regular Expression:
Code:
.{0,20}DeinText.{0,20}

DeinText musst Du natuerlich noch ersetzen, z.B. durch eine Variable.
Aber ich hab keine Ahnung was da wirklich bei rauskommt, hab's nicht getestet und bin auch noch nicht total fit in RegEx (nicht FedEx ).
 
reptiler hat gesagt.:
und bin auch noch nicht total fit in RegEx
Um mit regulären Ausdrücken wirklich klar zu kommen werden muss man (ich zumindest) ja auch erstmal ganze Bücher lesen. Das hat mir sehr geholfen, hab aber schon wieder alles vergessen. Ich müsst mir wieder eins organisieren, wenn ich wieder ernsthaft reguläre Ausdrücke verwenden wollte.
 
Wenn ich mal einen RegEx brauche strick ich mir den in der Regel mit dem KRegExpEditor zusammen.
Mit dem bin ich auch ganz zufrieden und der hat mir bisher immer weiter geholfen.

Wegen dem Buch werd ich mal schauen ob's das hier gibt und was das so kostet.
 
Zuletzt bearbeitet:
Muss ich mir mal anschauen, auch wenn mich das K irgendwie stört.

Bei .{0,20}$variable.{0,20} sollte man aber noch aufpassen, dass alle RegExp-Steuerzeichen in $variable escaped sind, sonst gibt es unschöne Ergebnisse. In der Doku liest sich das so: "so it is always safe to precede a non-alphanumeric with "\" to specify that it stands for itself". Löst man vorher wohl am besten auch mit einem regulären Ausdruck, oder? Oder einfacher:

$variable = str_replace("|", "\\|", quote_meta($variable)); ;-]

Nun dürfte $variable in den "wirklichen" regulären Ausdruck.
 
ich versuch einfach mein Problem nochmal genauer zu erklären.
ich hole per suche "SELECT * FROM [Tabellenname] WHERE [Tabellenspaltenname] LIKE %suchwort% die Datensätze aus der DB in denen das Wort enthalten ist.
Ich muß also ein einzelnen Array z.B. $zeile[3] nach dem Suchwort durchsuchen denn da steht der DIN A4 Seitenlange Text drinen. Diese Ergebnise will ich anzeigen lassen aber nur mit dem Suchwort und jeweils ca. 20 Stellen vorher und nachher und als Ergebnis Liste mit Link-ID ausgeben.

Hoffe es ist jetzt besser dargestellt :confused:
 
@danielm

Danke Dir für deine gute Antwort nur hab ich das Gefühl das Du von falschen Fakten ausgegangen bist. Ich hab versucht mein Problem nochmal etwas besser zu erklären. Hoffe das hat geklappt!

Vielleicht wenigstens...
 
Hast Du mal den RegEx probiert?

Wenn man keine Ahnung hat sollte man Vorschlaege zumindest mal ausprobieren, man hat ja nichts zu verlieren. Es ist auf jeden Fall unsinnig etwas abzulehnen weil man es nicht versteht.

reptiler hat gesagt.:
Der Ertrinkende sollte aus Gruenden der Steigerung der persoenlichen Ueberlebenschance nach jedem noch so duennen Strohhalm greifen.
 
Zurück