V tomto příspěvku uvedu jednoduchý příkaz (podmínku) jak v PHP ověřit, zda jeden řetězec (string) obsahuje jiný řetězec. Bohužel v PHP není funkce contains a musíme si jí vytvořit sami.
1. Testování, zda řetězec obsahuje podřetězec.
if (strpos($retezec,$hledany_vyraz) !== false) { echo 'Retezec nalezen'; }
2. Podmínka, zda řetězec neobsahuje daný podřetězec.
if (strpos($retezec,$hledany_vyraz) === false) { echo 'Retezec nenalezen'; }
3. Komplexní test na obsah podřetězce v řetězci
if (strpos($retezec,$hledany_vyraz) === false) { echo 'Retezec nenalezen'; } else { echo 'Retezec nalezen'; }
Jak to funguje?
StrPos vrací pozici hledaného textu v řetězci. Pokud řetězec text neobsahuje, vrací false. Jelikož může být podřetězec hned na prvním místě, je nutné použít místo == operátor === (respektive !==).
Důležité upozornění! Nepoužívejte pro testování příkazy strstr ani ereg! Oba příkazy jsou zbytečně výpočetně i paměťově náročné.