• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

PHP preg_replace

ma.buso

Châtaigne du Léman
Registriert
16.04.05
Beiträge
820
Ich versuche gerade, aus Texten irrelevante Worte rauszuziehen.

Dazu hab ich zwei Arrays gefunden mit deutschen und engl. "Stoppwörtern":
Code:
// [...]
      $stopwords["de"][] = "dazu";
      $stopwords["de"][] = "dem";
      $stopwords["de"][] = "den";
      $stopwords["de"][] = "denn";
// [...]

Weiters will ich dann die Wörter rausschmeißen:

Code:
$Search[] = "=(\s[A-Za-z]{1,2})\s=";
$Search[] = "= " . implode(" | ", $stopwords["de"]) . " =i";
$Search[] = "= " . implode(" | ", $stopwords["en"]) . " =i";
$Search[] = "= +=";

$Replace[] = " ";
$Replace[] = " ";
$Replace[] = " ";
$Replace[] = " ";

$String = " " . str_replace(" ", "  ", $String) . " ";
$String = trim(preg_replace($Search, $Replace, $String));

Komisch nur, dass er nicht alle rausschmeißt. Da handelt es sich auch nicht um bestimmte örter, die er komplett drin lässt, sondern er schmeißt z.B. ein Paar "dann" raus und ein Paar lässt er drin.
Vielleicht kann mir jemand sagen, wo der Fehler liegt.
 

mewX

Wohlschmecker aus Vierlanden
Registriert
26.12.06
Beiträge
241
So vllt.?
Code:
$Search[] = "=[" . implode("|", $stopwords["de"]) . "]=i";
$Search[] = "=[" . implode("|", $stopwords["en"]) . "]=i";
Sonst setzt er vermutlich die RegExps nichts richtig zusammen..
 

ma.buso

Châtaigne du Léman
Registriert
16.04.05
Beiträge
820
so geht's gleich garnicht :) außerdem würde er so aus den wörtern, welche die stoppwörter enthalten diese rauslöschen, sodass man nur noch kauderwälsch übrig hätte.

habe jetzt erstmal alle wörter mit weniger als 4 buchstaben gekickt und auf einmal geht's pima - das verstehe wer will .... ;)