Освоение подсчета подстрок без учета регистра в PHP: подробное руководство

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

Метод 1: использование strtolowerдля нормализации регистра.
Один простой подход — преобразовать исходную строку и подстроку в нижний регистр перед подсчетом. Тем самым мы гарантируем, что поиск не будет учитывать регистр.

$string = "Hello World! Welcome to PHP!";
$substring = "php";
$lowercaseString = strtolower($string);
$lowercaseSubstring = strtolower($substring);
$count = substr_count($lowercaseString, $lowercaseSubstring);
echo "Count: " . $count; // Output: Count: 2

Метод 2: использование stristrдля сопоставления без учета регистра.
Другой метод — использование функции stristr, которая выполняет поиск подстроки без учета регистра внутри строка. Мы можем использовать эту функцию для подсчета вхождений подстроки.

$string = "Hello World! Welcome to PHP!";
$substring = "php";
$count = 0;
$pos = 0;
while (($pos = stristr($string, $substring, $pos)) !== false) {
    $count++;
    $pos += strlen($substring);
}
echo "Count: " . $count; // Output: Count: 2

Метод 3: использование регулярных выражений (регулярных выражений)
Регулярные выражения предоставляют мощный инструмент для сопоставления с образцом, включая поиск без учета регистра. Мы можем использовать функцию preg_match_allс соответствующим шаблоном регулярного выражения для подсчета вхождений подстроки.

$string = "Hello World! Welcome to PHP!";
$substring = "php";
$count = preg_match_all("/$substring/i", $string);
echo "Count: " . $count; // Output: Count: 2

В этой статье мы рассмотрели различные методы подсчета подстрок без учета регистра в PHP. Мы рассмотрели такие методы, как использование strtolowerдля нормализации регистра, использование stristrдля сопоставления без учета регистра и использование регулярных выражений. Теперь у вас есть ряд опций на выбор, когда вам нужно подсчитать подстроки без учета чувствительности к регистру в ваших PHP-приложениях. Приятного кодирования!