Podmínka, zda řetězec obsahuje druhý řetězec

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é.

Příspěvek byl publikován v rubrice PHP. Můžete si uložit jeho odkaz mezi své oblíbené záložky.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

*

Můžete používat následující HTML značky a atributy: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>