Funkce strpos
Funkce strpos vrací pozici
prvního výskytu podřetězce v jiném řetězci
nebo false, pokud podřetězec není nalezen.
Prvním parametrem funkce přijímá řetězec,
ve kterém se vyhledávání provádí, druhým parametrem
- podřetězec, který se má hledat.
Ve výchozím nastavení funkce hledá od začátku řetězce až do prvního shody. Počátek vyhledávání lze regulovat třetím volitelným parametrem - pokud je zadán, vyhledávání nezačne od začátku řetězce, ale od zadaného místa.
Existuje také funkce stripos, která
dělá to samé, ale bez rozlišení velikosti písmen.
Syntaxe
strpos(string $haystack, string $needle, int $offset = 0): int|false
Příklad
V tomto příkladu funkce vrátí pozici prvního
symbolu 'c'. Ten zaujímá pozici 2,
protože počítání začíná od 0:
<?php
echo strpos('abcde abcde', 'c');
?>
Výsledek provedení kódu:
2
Příklad
V tomto příkladu je zadán třetí parametr a
proto vyhledávání začne od třetí pozice,
v tomto případě funkce najde již druhý symbol
'c' a vypíše jeho pozici - 8:
<?php
echo strpos('abcde abcde', 'c', 3);
?>
Výsledek provedení kódu:
8
Příklad
Pokud podřetězec nebude nalezen - funkce
vrátí false. Pokud se řetězec nachází
na začátku, pak funkce vrátí 0.
To může být problém při porovnávání
pomocí zkrácené formy podmínky:
<?php
if (strpos('http://site.ru', 'http://')) {
echo '+++';
} else {
echo '---';
}
?>
Výsledek provedení kódu (není takový, jaký jsme očekávali):
'---'
Příklad
Provedeme správnou kontrolu začátku řetězce:
<?php
if (strpos('http://site.ru', 'http://') === 0) {
echo '+++';
} else {
echo '---';
}
?>
Výsledek provedení kódu:
'+++'
Viz také
-
funkci
strrpos,
která vrací pozici posledního výskytu podřetězce -
funkci
str_contains,
která ověřuje výskyt symbolu v řetězci -
funkci
str_starts_with,
která ověřuje začátek řetězce -
funkci
str_ends_with,
která ověřuje konec řetězce -
funkci
array_search,
která provádí vyhledávání v poli