W3docs

strripos()

Die Funktion strripos() in PHP findet die letzte Vorkommen eines Teilstrings ohne Berücksichtigung der Groß- und Kleinschreibung.

Einführung

Die Funktion strripos() in PHP sucht die Position des letzten Vorkommens eines Teilstrings in einem anderen String und ignoriert dabei die Groß- und Kleinschreibung. Der Name lässt sich wie folgt aufschlüsseln: str (string) + r (reverse, d. h. Suche von rechts) + i (case-insensitive) + pos (position).

Sie ist das groß-/kleinschreibungsunabhängige Pendant zu strrpos(): strripos("Hello", "L") und strripos("Hello", "l") liefern beide dieselbe Position, während strrpos() L und l als unterschiedliche Zeichen behandeln würde.

Dieses Kapitel behandelt die Syntax, den Rückgabewert (und den false-Fallstrick, den Sie beachten müssen), den optionalen Parameter $offset – einschließlich negativer Offsets – sowie die Beziehung von strripos() zu anderen String-Suchfunktionen.

Syntax

strripos(string $haystack, string $needle, int $offset = 0): int|false
ParameterBeschreibung
$haystackDer String, in dem gesucht wird.
$needleDer Teilstring, nach dem gesucht wird.
$offsetOptional. Gibt an, wo die Suche beginnt. Ein positiver Wert überspringt die ersten $offset Zeichen; ein negativer Wert stoppt die Suche so viele Zeichen vor dem Ende des Strings. Standard ist 0.

Rückgabewert: Der nullbasierte Index des letzten übereinstimmenden Vorkommens oder false, wenn $needle nicht gefunden wird.

Immer mit !== vergleichen

strripos() gibt 0 zurück, wenn die Übereinstimmung ganz am Anfang des Strings liegt, und 0 ist in PHP falsy. Eine lockere Prüfung wie if (strripos(...)) würde eine Übereinstimmung an Position null fälschlicherweise als „nicht gefunden" behandeln. Vergleichen Sie daher immer mit dem strengen Operator !== gegen false:

<?php

$haystack = "Apple pie";
$pos = strripos($haystack, "a"); // matches "A" at index 0

if ($pos !== false) {
  echo "Found at index $pos"; // Found at index 0
} else {
  echo "Not found";
}

Einfaches Beispiel

php— editable, runs on the server

In Hello World gibt es zwei o/O-Zeichen – eines in Hello (Index 4) und eines in World (Index 7). Da strripos() die letzte Übereinstimmung zurückgibt, lautet die Ausgabe:

Found last occurrence of 'o' in 'Hello World' at position 7

Groß-/Kleinschreibungsunabhängige Suche

Die Suche behandelt Groß- und Kleinbuchstaben als gleich, sodass die Schreibweise von $needle keine Rolle spielt:

<?php

$string = "Hello World, hello PHP";

echo strripos($string, "hello"), "\n"; // 13 — matches "hello" in "hello PHP"
echo strripos($string, "HELLO"), "\n"; // 13 — same match, case ignored

Das letzte hello/HELLO/Hello im String beginnt bei Index 13, unabhängig davon, wie Sie den Suchbegriff schreiben.

Verwendung des Parameters $offset

Ein positiver Offset beginnt die Suche nach den ersten $offset Zeichen:

<?php

$string = "Hello World";

echo strripos($string, "o", 5), "\n"; // 7 — only the "o" in "World" is considered

Ein negativer Offset lässt die Suche so viele Zeichen vor dem Ende des Strings stoppen, was nützlich ist, um die letzte Übereinstimmung in allem außer einem abschließenden Teil zu finden:

<?php

$string = "abcabc";

echo strripos($string, "b", -2), "\n"; // 4 — last "b" within the truncated search window

Verwandte Funktionen

Wählen Sie die passende Suchfunktion für den jeweiligen Anwendungsfall:

  • strrpos() — wie strripos(), aber Groß-/Kleinschreibung beachten.
  • stripos() — findet das erste groß-/kleinschreibungsunabhängige Vorkommen.
  • strpos() — findet das erste Vorkommen unter Beachtung der Groß-/Kleinschreibung.
  • strstr() — gibt den Rest des Strings ab der ersten Übereinstimmung zurück, statt einer Position.
  • substr() — extrahiert einen Teil eines Strings, sobald Sie die Position kennen.
FunktionRichtungGroß-/Kleinschreibung?
strpos()erstes Vorkommenja
stripos()erstes Vorkommennein
strrpos()letztes Vorkommenja
strripos()letztes Vorkommennein

Fazit

strripos() findet das letzte groß-/kleinschreibungsunabhängige Vorkommen eines Teilstrings und gibt dessen Index zurück, oder false, wenn keine Übereinstimmung gefunden wird. Denken Sie daran, das Ergebnis mit !== zu prüfen, damit eine Übereinstimmung an Position null nicht fälschlicherweise als Fehler gewertet wird. Verwenden Sie $offset (positiv oder negativ), wenn Sie den Suchbereich einschränken möchten. Wenn Sie stattdessen das erste Vorkommen benötigen oder die Groß-/Kleinschreibung eine Rolle spielt, verwenden Sie eine der oben genannten verwandten Funktionen.

Übung

Übung
Was macht die PHP-Funktion strripos()?
Was macht die PHP-Funktion strripos()?
Was this page helpful?