strpos
(PHP 4, PHP 5, PHP 7, PHP 8)
strpos — Sucht die Position des ersten Vorkommens des Suchstrings in einem String
Beschreibung
$haystack
, string $needle
, int $offset
= 0): int|false
Gibt die numerische Position des ersten Vorkommens von
needle
innerhalb der Zeichenkette
haystack
zurück.
Parameter-Liste
-
haystack
-
Die Zeichenkette, in der gesucht werden soll.
-
needle
-
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 sollteneedle
explizit in eine Zeichenkette umgewandelt werden oder explizit die Funktion chr() aufgerufen werden. -
offset
-
Wenn angegeben, wird die Suche diese Anzahl an Zeichen vom Anfang der Zeichenkette gezählt beginnen. Ist der Wert negativ, beginnt die Suche stattdessen diese Anzahl an Zeichen vom Ende des Strings gezählt.
Rückgabewerte
Gibt die Position des Vorkommens von needle
relativ
zum Anfang der Zeichenkette haystack
(unabhängig von
offset
). Es ist ebenfalls zu beachten, dass
Stringpositionen bei 0 beginnen, und nicht bei 1.
Gibt false
zurück, wenn needle
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.
Changelog
Version | Beschreibung |
---|---|
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.
|
7.1.0 |
Unterstützung für negative offset -Werte wurde
hinzugefügt.
|
Beispiele
Beispiel #1 Verwendung von ===
<?php
$meinString = 'abc';
$findMich = 'a';
$pos = strpos($meinString, $findMich);
// Beachten Sie die Verwendung von ===. Ein einfacher Vergleich (==) liefert
// nicht das erwartete Ergebnis, da die Position von 'a' die nullte Stelle
// (also das erste Zeichen) ist
if ($pos === false) {
echo "Der String '$findMich' wurde nicht im String '$meinString' gefunden";
} else {
echo "Der String '$findMich' wurde im String '$meinString' gefunden";
echo " und befindet sich an Position $pos";
}
?>
Beispiel #2 Verwendung von !==
<?php
$meinString = 'abc';
$findMich = 'a';
$pos = strpos($meinString, $findMich);
// Der !==-Operator kann ebenfalls verwendet werden. Die Verwendung von !=
// würde in unserem Beispiel nicht wie erwartet arbeiten, da die Position
// von 'a' 0 ist. Das Statement (0 != false) evaluiert hierbei zu false.
if ($pos !== false) {
echo "Der String '$findMich' wurde im String '$meinString' gefunden";
echo " und befindet sich an Position $pos";
} else {
echo "Der String '$findMich' wurde nicht im String '$meinString' gefunden";
}
?>
Beispiel #3 Verwendung eines Offsets
<?php
// Wir koennen nach einem Zeichen suchen und dabei alles vor dem Offset ignorieren
$newstring = 'abcdef abcdef';
$pos = strpos($newstring, 'a', 1); // $pos = 7, nicht 0
?>
Anmerkungen
Hinweis: Diese Funktion ist binärsicher.
Siehe auch
- stripos() - Findet das erste Vorkommen eines Teilstrings in einem String, unabhängig von Groß- und Kleinschreibung
- str_contains() - Determine if a string contains a given substring
- str_ends_with() - Checks if a string ends with a given substring
- str_starts_with() - Checks if a string starts with a given substring
- strrpos() - Findet die Position des letzten Vorkommens eines Teilstrings innerhalb einer Zeichenkette
- strripos() - Findet das letzte Vorkommen der gesuchten Zeichenkette in einem String, unabhängig von Groß- und Kleinschreibung
- strstr() - Findet das erste Vorkommen eines Strings
- strpbrk() - Durchsucht einen String nach einem Zeichen aus einer Gruppe von Zeichen
- substr() - Liefert einen Teil eines Strings
- preg_match() - Führt eine Suche mit einem regulären Ausdruck durch