Elli: strstr strrchr und bis letztes Vorkommen

Hi,

Es gibt die Funktionen:

strstr()
Gibt vom "Anfang" bis zm "ersten" gesuchten Zeichen alles zurück.

strrchr()
Gibt vom "letzten" gesuchten Zeichen bis "Ende" alles zurück.

Aber gibt es auch eine solche Funktion?

??? ()
Gibt vom "Anfang" bis zum "letzten" gesuchten Zeichen alles zurück.

Klar die Alternative wäre zb.

strrev(strstr(strrev($str),$x));

aber lieber wär mir eine bereits existierende Funktion.

Elli

  1. Hallo シ

    strrev(strstr(strrev($str),$x));
    aber lieber wär mir eine bereits existierende Funktion.

    substr($string, 0, strrpos($string, $char));

    —Gabriel

  2. Hello,

    strstr()
    Gibt vom "Anfang" bis zm "ersten" gesuchten Zeichen alles zurück.

    if ($pos = strpos($haystack, $needle) !== false)
    {
        $result = substr($haystack,0,$pos + strlen($needle);
    }
    else
    {
        ## kommt darauf an, was Du haben willst, wenn die gesuchte zeichenkette
        ## nicht im Vorlagetext steckt.
        $result = '';
    }

    strstr() macht jedenfalls nicht das, was Du geschrieben hast.

    Liebe Grüße

    Tom vom Berg

    --
    Nur selber lernen macht schlau
  3. (Hallo|Hi(ho)|Tag) Elli,

    Aber gibt es auch eine solche Funktion?
    Gibt vom "Anfang" bis zum "letzten" gesuchten Zeichen alles zurück.

    Klar die Alternative wäre zb.
    strrev(strstr(strrev($str),$x));
    aber lieber wär mir eine bereits existierende Funktion.

    Naja, genaugenommen sind es zwei Funktionen:

    preg_replace('/\A(.*' . preg_quote($needle, '/') . ')/s', '$1', $haystack);

    Diese Variante hat gegenüber den str-schlagmichtot-Funktionen den Vorteil,
    dass sie mit winzigen Modifikationen noch leistungsfähiger wird:

    * Groß-Klein-Schreibung wird ignoriert, wenn hinter das '/)s' noch ein kleines  i gesetzt wird.

    * Das Ganze kann mit UTF-8-Strings umgehen, wenn du ein kleines u hinzufügst.

    * Beides zusammen geht übrigens auch.

    MffG
    EisFuX