(PHP 4, PHP 5, PHP 7)
strrpos — Findet die Position des letzten Vorkommens eines Teilstrings innerhalb einer Zeichenkette
Gibt die numerische Position des letzten Vorkommens von
needle
innerhalb der Zeichenkette
haystack
zurück.
haystack
Die Zeichenkette in der gesucht werden soll.
needle
Ist der Parameter needle
kein String,
so wird dieser in eine Ganzzahl umgewandelt und als ordinaler Wert
eines Zeichens betrachtet. Dieses Verhalten gilt seit PHP 7.3.0 als
veraltete und es wird stark empfohlen, sich nicht darauf zu verlassen.
Ist das Verhalten gewünscht, so sollte man explizit zu einer
Zeichenkette casten oder explizit die Funktion chr()
aufrufen.
offset
Wenn angegeben, wird die Suche diese Anzahl an Buchstaben vom Anfang des Strings gezählt stoppen. Wenn der Wert negativ ist, startet die Suche stattdessen diese Anzahl an Zeichen vom Ende des Strings aus.
Gibt die Position des Vorkommens des gesuchten Teilstrings relativ
zum Anfang der Zeichenkette haystack
(unabhängig
von Suchrichtung oder Offset) zurück.
Beachten Sie bitte, dass Positionen in Zeichenketten ab 0 gezählt werden
und nicht ab 1.
Gibt FALSE
zurück, falls der gesuchte teilstring nicht gefunden wurde.
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.
Version | Beschreibung |
---|---|
5.0.0 |
needle kann nun aus mehr als
einem Buchstaben bestehen.
|
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
$pos = strrpos($meinstring, "b");
if ($pos === false) { // Beachten sie die drei Gleichheitszeichen
// nicht gefunden ...
}
?>
Beispiel #2 Mit Offsets suchen
<?php
$foo = "0123456789a123456789b123456789c";
var_dump(strrpos($foo, '7', -5)); // Beginnt die Suche fünf Zeichen
// vom Ende aus. Ergebnis: int(17)
var_dump(strrpos($foo, '7', 20)); // Beginnt die Suche zwanzig Zeichen
// vom Anfang aus. Ergebnis: int(27)
var_dump(strrpos($foo, '7', 28)); // Ergebnis: bool(false)
?>