str_contains
str_contains($text, $hledany)
Zjistí, jestli text obsahuje hledaný řetězec, a vrátí true nebo false. Rozlišuje velká a malá písmena. Funkce je od PHP 8.0.
Parametry
- $text – prohledávaný text.
- $hledany – hledaný řetězec.
Příklady
var_dump(str_contains("Objednávka č. 2026-15", "2026")); // bool(true)
var_dump(str_contains("Objednávka", "objednávka")); // bool(false)
// bez ohledu na velikost písmen
var_dump(str_contains(mb_strtolower("Objednávka"), "objednávka")); // bool(true)
// prázdný řetězec je obsažený vždy
var_dump(str_contains("abc", "")); // bool(true)
// dřívější zápis přes strpos – nalezení na pozici 0 je potřeba odlišit od false
var_dump(strpos("PHP 8", "PHP") !== false); // bool(true)
Náhrada pro starší PHP
Ve verzích starších než PHP 8.0 funkce není. Následující kód ji doplní jen tam, kde chybí, v novějších verzích se použije vestavěná funkce.
if (!function_exists("str_contains")) {
function str_contains($text, $hledany) {
return $hledany === "" || strpos($text, $hledany) !== false;
}
}
var_dump(str_contains("Objednávka č. 2026-15", "2026")); // bool(true)
var_dump(str_contains("abc", "")); // bool(true)
Na co si dát pozor
- Rozlišuje velká a malá písmena. Bez rozlišení použijte stripos() !== false, u textu s diakritikou převeďte oba řetězce přes mb_strtolower().
- Prázdný hledaný řetězec vrátí vždy true. Když hledaný text zadává uživatel, prázdnou hodnotu ošetřete zvlášť.
- Porovnává bajty. S texty v UTF-8 to funguje správně, falešnou shodu uprostřed znaku nenajde.
Příbuzné funkce:
str_starts_with()
str_ends_with()
strpos()
mb_strpos()