(PHP 4, PHP 5, PHP 7, PHP 8)
substr_count — Возвращает количество вхождений подстроки
Функция substr_count() возвращает количество вхождений
подстроки needle
в строку
haystack
. Заметьте, что параметр
needle
чувствителен к регистру.
Замечание:
Функция не подсчитывает перекрывающиеся подстроки. Смотрите пример ниже!
haystack
Строка, в которой выполняется поиск.
needle
Искомая подстрока.
offset
Смещение начала отсчёта. При отрицательном значении отсчёт позиции начинается с конца строки.
length
Максимальная длина подстроки для поиска после установки смещения.
Функция выдаст предупреждение, если сумма абсолютного количества байтов смещения
и максимальной длины подстроки для поиска превысит длину строки haystack
.
Отрицательная длина отсчитывается с конца строки haystack
.
Функция возвращает значение int.
Версия | Описание |
---|---|
8.0.0 |
Параметр length теперь принимает значение null.
|
7.1.0 |
Добавили поддержку отрицательных значений параметрами offset
и length .
Параметр length теперь допускает значение 0 .
|
Пример #1 Пример подсчёта количества вхождений подстроки функцией substr_count()
<?php
$text = 'This is a test';
echo strlen($text), PHP_EOL; // 14
echo substr_count($text, 'is'), PHP_EOL; // 2
// Строка сокращается до 's is a test', поэтому функция выводит значение 1
echo substr_count($text, 'is', 3), PHP_EOL;
// Текст сокращается до 's i', поэтому функция выводит значение 0
echo substr_count($text, 'is', 3, 3), PHP_EOL;
// Конструкция выводит только 1, поскольку функция не учитывает перекрывающиеся подстроки
$text2 = 'gcdgcdgcd';
echo substr_count($text2, 'gcdgcd'), PHP_EOL;
// Функция выбрасывает ошибку, потому что 5 + 10 > 14
echo substr_count($text, 'is', 5, 10), PHP_EOL;
?>