Funkce najde pozici prvního výskytu podřetězce v řetězci, což lidsky znamená, že ověří, jestli předaný řetězec obsahuje hledaný výraz a vrátí jeho pozici.
Funkce strpos
vrací pozici hledaného textu v řetězci. Pokud řetězec obsahuje, vrátí pozici jeho prvního znaku jako integer
(celé číslo), pokud neobsahuje, vrátí false
(nepravda). Toho můžeme využít při testování řetězců.
Parametr | Datový typ | Výchozí hodnota | Poznámka |
---|---|---|---|
$haystack |
string |
povinné | Řetězec, ve kterém se bude hledat |
$needle |
mixed |
povinné | Pokud není řetězec, převede se na číslo (integer) a použije se jako pořadová hodnota znaku. |
$offset |
int |
0 |
Pokud je nastavena nějaká hodnota, funkce nejprve odpočítá uvedený počet znaků od začátku řetězece a až poté začne vyhledávat. Na rozdíl od funkce strrpos a strripos nemůže být offset záporný. |
Od PHP 8 existuje nativní způsob, jak ověřit existence řetězce v textu. Dělá se to velmi jednoduše nativní funkcí str_contains
:
if (str_contains('jan@barasek.com', '@')) {// E-mail obsahuje zavináč}
Pozor: Funkce
str_contains
je od PHP 8 nativní součást jazyka.
Často potřebujeme zjistit, jestli text obsahuje určitý řetězec. Až do verze PHP 8 neexistovala funkce str_contains
, proto se předtím implementovala takto:
/*** Obsahuje $haystack řetězec $needle?*/function str_contains(string $haystack, string $needle): bool{return strpos($haystack, $needle) !== false;}
Podle toho lze sestavit například podmínka, zda řetězec obsahuje druhý řetězec a podle toho se dál zařídit:
if (strpos('jan@barasek.com', '@') !== false) {// E-mail obsahuje zavináč}
Výhoda této metody ověření výskytu řetězce je její extrémní rychlost. Pokud potřebujete ověřit složitější shodu, budou potřeba regulární výrazy.
Funkce vždy vrátí pozici řetězce jako celé číslo (int
), nebo hodnotu false
(nepravda), pokud řetězec neobsahuje hledanou frázi.
[Oficiální dokumentace funkce strpos](Oficiální manuál)
Jan Barášek Více o autorovi
Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.
Rád vám pomůžu:
Nabízím trénink vývojářů, konzultace, školení a analýzu návrhových vzorů. Osobně v Praze nebo online.
Napište mi, pokud si nevíte rady.
Lektor: Jan Barášek
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | cs