Проверить наличие текста в строке
1-ый способ: поиск строки
С версии PHP 8.0 стала доступна функция str_contains()
.
str_contains('PHP-скрипт', 'PHP'); // true str_contains('PHP-скрипт', 'Python'); // false
Также можно проверить, что указанная строка начинается или заканчивается с указанной строки:
// Строка начинается на "PHP" str_starts_with('PHP-скрипт', 'PHP'); // true str_starts_with('Скрипт PHP', 'PHP'); // false // Строка заканчивается на "PHP" str_ends_with('PHP-скрипт', 'PHP'); // false str_ends_with('Скрипт PHP', 'PHP'); // PHP
До версии PHP 8.0 использовалась функция strpos()
, которая возвращает позицию указанного текста. Если текст не найден, то функция возвращает -1
.
$text = 'PHP-script'; if (strpos($text, 'PHP') !== false) { echo 'строка найдена'; }
Также можно указать третий параметр, который указывает, откуда начинать искать строку.
2-ой способ: регулярное выражение
Проверить наличие текста с помощью регулярных выражений можно через функцию preg_match()
.
$text = 'PHP-script'; if (preg_match('/PHP/', $text)) { echo 'строка найдена'; }
Если надо найти просто текст, как на примере выше, то из-за производительности лучше использовать функцию strpos()
. Об этом также написано в официальной документации php.net/manual/ru/function.preg-match.php.
Для более сложных поиска текста можно использовать preg_match()
.
// Код проверяет наличие строк «PHP-script» и «Python-script» $text = 'PHP-script'; if (preg_match('/(PHP|Python)-script/', $text)) { echo 'строка найдена'; }