strpos

(PHP 4, PHP 5, PHP 7)

strposSucht die Position des ersten Vorkommens des Suchstrings in einem String

Beschreibung

strpos ( string $haystack , mixed $needle [, int $offset = 0 ] ) : int

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

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 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.

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
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 binary safe.

Siehe auch

  • stripos() - Findet das erste Vorkommen eines Teilstrings in einem String, unabhängig von Groß- und Kleinschreibung
  • 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() - Gibt einen Teil eines Strings zurück
  • preg_match() - Führt eine Suche mit einem regulären Ausdruck durch