Signatur
Beschreibung
strripos() durchsucht den Eingabe-String haystack rückwärts nach dem letzten Vorkommen von needle und gibt dessen Position (0-basiert) zurück. Im Gegensatz zu strrpos() ist die Suche nicht Groß-/Kleinschreibungssensitiv, d. h. A und a werden gleich behandelt.
Der optionale Parameter offset verschiebt den Startpunkt der Suche: Ein positiver Wert lässt die Suche von der angegebenen Position vorwärts beginnen, während ein negativer Wert dazu führt, dass die letzten |offset| Zeichen vom Ende des Strings von der Suche ausgeschlossen werden.
Typische Einsatzgebiete sind Dateinamen-Parsing (z. B. Ermittlung der letzten Dateiendung unabhängig von Groß-/Kleinschreibung), URL-Analyse oder die Suche nach Keywords in Texten, bei denen Groß-/Kleinschreibung irrelevant ist.
Wird needle nicht gefunden, gibt die Funktion false zurück. Da Position 0 ebenfalls falsy ist, muss der Rückgabewert immer mit === geprüft werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $haystack Pflicht | string | Der String, in dem gesucht wird. | |
| $needle Pflicht | string | Der gesuchte Teilstring. Die Suche erfolgt unabhängig von Groß- und Kleinschreibung. | |
| $offset | int | 0 | Verschiebt den Suchbereich: Ein positiver Wert startet die Suche ab dieser Position von vorn; ein negativer Wert schließt die letzten |offset| Zeichen des Strings von der Suche aus. |
Rückgabewert
needle in haystack, oder false, wenn needle nicht gefunden wurde. Achtung: Immer mit === auf false prüfen, da Position 0 bei loser Typprüfung ebenfalls als falsy gilt.Beispiele
Grundlegende Suche ohne Berücksichtigung der Groß-/Kleinschreibung
<?php
$text = 'Hallo Welt, hallo PHP!';
$pos = strripos($text, 'hallo');
if ($pos !== false) {
echo "Letztes Vorkommen von 'hallo' an Position: " . $pos;
} else {
echo "Nicht gefunden.";
}
Dateiendung unabhängig von Groß-/Kleinschreibung ermitteln
<?php
$dateiname = 'Urlaubsfoto.JPEG';
$dotPos = strripos($dateiname, '.');
if ($dotPos !== false) {
$endung = strtolower(substr($dateiname, $dotPos + 1));
echo 'Dateiendung: ' . $endung;
} else {
echo 'Keine Dateiendung gefunden.';
}
Verwendung eines negativen Offsets
<?php
$text = 'PHP ist toll. PHP macht Spaß. php rocks.';
// Suche nur in den ersten (strlen - 10) Zeichen
$pos = strripos($text, 'php', -10);
echo $pos !== false
? "Gefunden an Position: " . $pos
: "Nicht im eingeschränkten Bereich gefunden.";
// Wichtig · Fallstricke
Typfalle: Der Rückgabewert false und die Position 0 sind bei loser Typprüfung nicht unterscheidbar. Verwende daher stets den strikten Vergleich === false, um zu prüfen, ob die Suche erfolglos war.
Multibyte-Strings: strripos() arbeitet Byte-basiert und ist nicht für Multibyte-Encodings (z. B. UTF-8 mit mehrbyteigen Zeichen) geeignet. Für solche Fälle sollte mb_strripos() verwendet werden.