V předchozím článku jsme si ukázali základy toho, jak pracovat s řetězci v PHP. V tomto díle pokročíme k složitějším funkcím, které slouží k vyhledávání a nahrazování. Na úvod si ovšem dáme ještě něco funkcí relativně jednodušších.
K získání části řetězce slouží funkce SubStr. Má tři parametry - řetězec, pozici 1. znaku a délku. Vrací pochopitelně část řetězce určené délky od daného znaku. Pokud je pozice 1. znaku záporné číslo, řetězec bude se pozice počítat od konce. Pokud je záporná délka, bude řetězec tolik zanků od konce končit. Není-li délka vůbec zadána, funkce vrátí vše od prvního znaku do konce řetězce. Opět nejlepší ilustrací jsou příklady:
Často potřebujeme zjistit, zda se v nějkém řetězci vyskytuje určitý podřetězec. K tomu nám poslouží funkce StrPos, která vrací pozici hledaného textu v řetězci. První parametr je tedy řetězec, druhý text, který v něm hledáme. Pokud řetězec podřetězec neobsahuje, funkce vrací false. V tom se ovšem skrývá malý problém - flase odpovídá hodnotě nula, proto se funkce chová stejně i tehdy, pokud je hledaný text úplně na začátku řetězce. Lze to obejít různými způsoby, mně připadá nejlepší na začátek prohledávaného řetězce přidat nějaký bezproblémový znak (např. mezeru), potom se funkce chová tak, jak potřebujeme (pokud však chceme dále pracovat s pozicí nalezeného textu, musíme kvůli přidané mezeře odečíst jedna!). Takto může vypadat netradiční test HIV pozitivity :-):