Malte: string-fkt mit start&stopp-paramter

Suche eine Funktion um aus einem String einen bestimmten Teil herauszufiltern, indem zwei Prameter angegeben werden. Gibt es da was, bzw. wie kann ich das improvisieren?

$string="Text ## Hier kommt der zu filternde Text #! anderer Text";
function("##","#!",$string);

Die Funktion soll "Hier kommt der zu filternde Text " ausgeben.

  1. Eine solche Funktion kenne ich auch nicht. Aber es gibt viele Möglichkeiten diese selber zu machen.

    Beispiel:

    1.strpos --  Sucht erstes Vorkommen des Suchstrings "##" und liefert die Position

    2. Diese Position speichern zB als $pos1

    3.strpos --  Sucht erstes Vorkommen des Suchstrings "#!" und liefert die Position

    4. Diese Position speichern zb als $pos2

    5. substr -- Gibt einen Teil eines Strings zurück

    also etwa:

    $string="Text ## Hier kommt der zu filternde Text #! anderer Text";
    $pos1 = strpos ($string, "##");
    $pos2 = strpos ($string, "#!");
    $pos1--;
    //(1 abziehen , da das erste Zeichen eines Strings die
    // Position 0 hat, die natürliche Denkweise aber mit 1 beginnt.
    $pos2--;
    $gesuchterstring = substr($string, $pos1, $pos2);

    Das ganze kannst du, wenn du es mehrfach brauchst dann in eine Funktion packen, die deinen String bekkommt und als Rückgabewert den Teilstring liefert.

    Keine Ahnung ob das die beste Möglichkeit ist, aber es ist eine von vielen und du hattest bisher keine Antwort.

    Anderer Ansatz zB: Durch den String Zeichen für Zeichen "walken" und Zeichen checken. Nachdem zwei auffeinanderfolgende "#" gefunden wurden alle Zeichen kopieren , bis die Kombination "#!! gekommen ist.
    Dann das letzte "#" loeschen und fertig. Denke aber, dass das Aufwendiger ist.

    Gruss,
    Boris