Поиск подстроки в строке на языке PHP

PHP позволяет осуществлять поиск подстроки в строке с помощью функций, работающих с регулярными выражениями, а также с помощью стандартных строковых функций.

Для поиска подстроки в строке можно использовать функции strpos() и strstr(). Функция strpos() возвращает позицию (индекс) первого вхождения искомой подстроки в строке, или false, если подстрока не найдена. Например:


$haystack = 'The quick brown fox jumps over the lazy dog';
$needle = 'fox';
$position = strpos($haystack, $needle);
if ($position !== false) {
    echo 'Найдено в позиции ' . $position;
} else {
    echo 'Подстрока не найдена';
}

В данном примере функция strpos() найдет подстроку 'fox' в строке $haystack и вернет значение 16.

Функция strstr() возвращает часть строки, начиная с первого вхождения искомой подстроки (или от первого символа исходной строки, если подстрока не найдена), или false, если подстрока не найдена. Пример использования функции strstr():


$haystack = 'The quick brown fox jumps over the lazy dog';
$needle = 'fox';
$result = strstr($haystack, $needle);
if ($result !== false) {
    echo 'Найдено: ' . $result;
} else {
    echo 'Подстрока не найдена';
}

В данном примере функция strstr() вернет строку 'fox jumps over the lazy dog', начиная с первого вхождения подстроки 'fox' в строке $haystack.

Если требуется найти все вхождения подстроки в строку, можно воспользоваться функцией strpos() в цикле, проходящем по всей строке. Пример:


$haystack = 'The quick brown fox jumps over the lazy dog';
$needle = 'o';
$positions = array();
for ($i = 0; $i < strlen($haystack); $i++) {
    $pos = strpos($haystack, $needle, $i);
    if ($pos !== false) {
        $positions[] = $pos;
        $i = $pos;
    } else {
        break;
    }
}
if (!empty($positions)) {
    echo 'Найдено ' . count($positions) . ' совпадений: ' . implode(',', $positions);
} else {
    echo 'Подстрока не найдена';
}

В данном примере функция strpos() находит все вхождения символа 'o' в строку $haystack и запоминает их позиции в массиве $positions.

Также можно использовать регулярные выражения для поиска подстроки в строке. Например, функция preg_match() позволяет проверять, содержится ли данная подстрока в строке, используя регулярное выражение. Пример:


$haystack = 'The quick brown fox jumps over the lazy dog';
$needle = '/fox/';
if (preg_match($needle, $haystack, $matches)) {
    echo 'Совпадение найдено: ' . $matches[0];
} else {
    echo 'Подстрока не найдена';
}

В данном примере регулярное выражение '/fox/' ищет подстроку 'fox' в строке $haystack, и функция preg_match() возвращает true и заполняет массив $matches, если совпадение найдено, или false, если подстрока не найдена.

Похожие вопросы на: "php поиск подстроки в строке "

This Java - уроки и примеры программирования на Java
Как использовать mailto в HTML коде для отправки писем
CSV reader в Python: считывание и обработка данных из файлов CSV
Enum в C#: что это и как использовать в программировании
Notepad Python - ваш лучший выбор для написания кода на Python
PHP Object to Array: Convert Object to Array in PHP
Laravel Vue - лучшая связка для разработки современных веб-приложений
<h1>SQL Commit - команда для подтверждения изменений в базе данных
<h1>JS: преобразование строки в число
Объект в массив PHP: советы и примеры