# strrpos

(PHP 4, PHP 5, PHP 7, PHP 8)

strrpos — Findet die Position des letzten Vorkommens eines Teilstrings innerhalb einer Zeichenkette

### Beschreibung

strrpos(string `$haystack`, string `$needle`, int `$offset` = 0): int|false

Gibt die numerische Position des letzten Vorkommens von `needle` innerhalb der Zeichenkette `haystack` zurück.

### Parameter-Liste

`haystack`

  Die Zeichenkette in der gesucht werden soll.

`needle`

  Die Zeichenkette, nach der gesucht werden soll.

  Wenn der Parameter `needle` keine Zeichenkette ist, wird er vor PHP 8.0.0 in eine Ganzzahl umgewandelt und als ordinaler Wert eines Zeichens betrachtet. Dieses Verhalten gilt seit PHP 7.3.0 als veraltet und es wird dringend empfohlen, sich nicht darauf zu verlassen. Ist das Verhalten gewünscht, so sollte `needle` explizit in eine Zeichenkette umgewandelt werden oder explizit die Funktion chr() aufgerufen werden.

`offset`

  Wenn null (`0`) oder positiv, wird die Suche von links nach rechts durchgeführt, wobei die ersten `offset` Bytes von `haystack` übersprungen werden.

  Wenn negativ, beginnt die Suche `offset` Bytes von rechts statt vom Anfang von `haystack`. Die Suche wird von rechts nach links durchgeführt, wobei nach dem ersten Vorkommen von `needle` ab dem ausgewählten Byte gesucht wird.

  > Hinweis:

  > Dies bedeutet, dass das letzte Vorkommen von `needle` an oder vor den letzten `offset` Bytes gesucht wird.

### Rückgabewerte

Gibt die Position des Vorkommens des gesuchten Teilstrings relativ zum Anfang der Zeichenkette `haystack` (unabhängig von Suchrichtung oder Offset) zurück.

> Hinweis: Positionen in Zeichenketten werden ab 0 gezählt, und nicht ab 1.

Gibt `false` zurück, falls der gesuchte Teilstring nicht gefunden wurde.

Warnung

Diese Funktion kann sowohl das boolsche `false` zurückliefern, als auch einen nicht-boolschen Wert, welcher zu `false` ausgewertet wird. Weitere Informationen entnehmen Sie bitte dem Abschnitt über die boolschen Typen. Benutzen Sie deshalb den === Operator, um den Rückgabewert dieser Funktion zu überprüfen.

### Changelog

Version | Beschreibung
--- | ---
8.0.0 | `needle` akzeptiert nun eine leere Zeichenkette.
8.0.0 | Die Übergabe eines Integer als `needle` wird nicht mehr unterstützt.
7.3.0 | Die Übergabe eines Integer als `needle` wird missbilligt.

### Beispiele

Beispiel #1 Prüfen ob needle in haystack vorkommt

Es liegt nahe, einen Fehler bei der Auswertung der Rückgabewerte von "Zeichen an Position 0 gefunden" und "Zeichen nicht gefunden" zu begehen. Am einfachsten finden Sie den Unterschied wie folgt heraus:

`<?php
$mystring = 'Elephpant';
$pos = strrpos($meinstring, "b");
if ($pos === false) { // Beachten Sie die drei Gleichheitszeichen
// nicht gefunden ...
}
?>`

Beispiel #2 Mit Offsets suchen

`<?php
$foo = "0123456789a123456789b123456789c";
// Sucht '0' ab dem nullten Byte (vom Anfang an)
var_dump(strrpos($foo, '0', 0));
// Sucht '0' ab dem ersten Byte (nach Byte "0")
var_dump(strrpos($foo, '0', 1));
// Sucht '7' ab dem 21ten Byte (nach Byte 20)
var_dump(strrpos($foo, '7', 20));
// Sucht '7' ab dem 29ten Byte (nach Byte 28)
var_dump(strrpos($foo, '7', 28));
// Sucht '7' von rechts nach links ab dem fünften Byte vom Ende
var_dump(strrpos($foo, '7', -5));
// Sucht 'c' von rechts nach links ab dem zweiten Byte vom Ende
var_dump(strrpos($foo, 'c', -2));
// Sucht '9c' von rechts nach links ab dem zweiten Byte vom Ende
var_dump(strrpos($foo, '9c', -2));
?>`

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

    int(0)
    bool(false)
    int(27)
    bool(false)
    int(17)
    bool(false)
    int(29)

### Siehe auch

- strpos() - Sucht die Position des ersten Vorkommens des Suchstrings in einem String
- stripos() - Findet das erste Vorkommen eines Teilstrings in einem String, unabhängig von Groß- und Kleinschreibung
- strripos() - Findet das letzte Vorkommen der gesuchten Zeichenkette in einem String, unabhängig von Groß- und Kleinschreibung
- strrchr() - Sucht das letzte Vorkommen eines Zeichens in einem String
- substr() - Liefert einen Teil eines Strings

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open