Funkcja strpos
Funkcja strpos zwraca pozycję
pierwszego wystąpienia podciągu w innym ciągu
lub false, jeśli podciąg nie zostanie znaleziony.
Pierwszym parametrem funkcja przyjmuje ciąg,
w którym przeprowadzane jest wyszukiwanie, drugim parametrem
- podciąg, który należy wyszukać.
Domyślnie funkcja szuka od początku ciągu do pierwszego dopasowania. Początek wyszukiwania można regulować trzecim parametrem opcjonalnym - jeśli jest podany, to wyszukiwanie rozpocznie się nie od początku ciągu, a od wskazanego miejsca.
Istnieje również funkcja stripos, która
robi to samo, ale bez uwzględniania wielkości liter.
Składnia
strpos(string $haystack, string $needle, int $offset = 0): int|false
Przykład
W tym przykładzie funkcja zwróci pozycję pierwszego
symbolu 'c'. Zajmuje on pozycję 2,
ponieważ liczenie zaczyna się od 0:
<?php
echo strpos('abcde abcde', 'c');
?>
Wynik wykonania kodu:
2
Przykład
W tym przykładzie podano trzeci parametr i
dlatego wyszukiwanie rozpocznie się od trzeciej pozycji,
w tym przypadku funkcja znajdzie już drugi symbol
'c' i wypisze jego pozycję - 8:
<?php
echo strpos('abcde abcde', 'c', 3);
?>
Wynik wykonania kodu:
8
Przykład
Jeśli podciąg nie zostanie znaleziony - to funkcja
zwróci false. Jeśli natomiast ciąg znajduje się
na początku, to funkcja zwróci 0.
Może to stanowić problem przy porównywaniu
przez krótką formę warunku:
<?php
if (strpos('http://site.ru', 'http://')) {
echo '+++';
} else {
echo '---';
}
?>
Wynik wykonania kodu (nie taki, jakiego oczekiwaliśmy):
'---'
Przykład
Wykonajmy prawidłowe sprawdzenie początku ciągu:
<?php
if (strpos('http://site.ru', 'http://') === 0) {
echo '+++';
} else {
echo '---';
}
?>
Wynik wykonania kodu:
'+++'
Zobacz też
-
funkcję
strrpos,
która zwraca pozycję ostatniego wystąpienia podciągu -
funkcję
str_contains,
która sprawdza występowanie symbolu w ciągu -
funkcję
str_starts_with,
która sprawdza początek ciągu -
funkcję
str_ends_with,
która sprawdza koniec ciągu -
funkcję
array_search,
która przeprowadza wyszukiwanie w tablicy