Wert eines Strings filtern

  • Wert eines Strings filtern

    Hallo.

    Ich habe einen variablen String (der Titel einzelner Items aus einem RSS Feed), deren Wert ich gerne etwas bearbeiten/vorfiltern würde.


    Problem 1
    Einige der Itemtitel aus dem Feed beginnen mit "Sticky:", andere nicht. Also zum Beispiel:
    Lorem Ipsum Nummer Eins
    Sticky:Lorem Ipsum Nummer Zwei
    Lorem Ipsum Nummer Drei...
    Wenn dieses "Sticky:" vorhanden ist, möchte ich es herausfiltern.


    Problem 2
    Alle Itemtitel des Feeds enden mit " - by XYZ". Beispiel:
    Lorem Ipsum Nummer Eins - by ABC
    Sticky:Lorem Ipsum Nummer Zwei - by DEF
    Lorem Ipsum Nummer Drei - by GHI...
    Ich möchte diesen letzten Part komplett herausfiltern.


    Kann ich dies allein mit PHP bewerkstelligen?
  • Ja das Filtern ist allein mit PHP möglich. Zum Filtern lassen sich sehr gut reguläre Ausdrücke verwenden.
    Mit diesen lassen sich bestimmte Zeichenmuster (Pattern) definieren, mit denen dann gearbeitet werden kann.
    Eine Mögliche Lösung sähe zum Beispiel so aus:

    Quellcode

    1. //Sei $test die Variable in der der zu Filternede String steht
    2. $test = "Sticky:Lorem Ipsum Nummer Zwei - by DEF";
    3. //Definition der zu findenen Muster in einem Array
    4. $patterns = array("/^Sticky:/", "/- by \w+$/");
    5. //Definition der Ersatzwerte für jedes Muster in einem Array
    6. $replacements = array("", "");
    7. //preg_replace als PHP-Funktion zum Ersetzen der Muster
    8. $test = preg_replace($patterns, $replacements, $test);


    Hierbei werden die Regulären Ausdrücke wie folgt aufgebaut. / markiert Anfang und Ende eines Patterns. \w+ matcht Zeichenketten aus mindestens einem Buchstaben. $ markiert ein Zeilenende und ^ einen Zeilenanfang.
    Es gibt noch viele weitere mögliche Ausdrücke, hier zum Beispiel ein kleiner Einstieg: php-einfach.de/codeschnipsel_9325.php

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von BackwardsEmanresu ()