В PHP функция substr_count— полезный инструмент для подсчета количества вхождений подстроки в заданную строку. Однако существуют альтернативные методы, которые позволяют достичь того же результата. В этой статье блога мы рассмотрим шесть различных методов, дополненных примерами кода, для подсчета вхождений подстроки в PHP.
Метод 1: использование substr_count
Пример кода:
$string = "Hello, hello, hELlo!";
$substring = "hello";
$count = substr_count(strtolower($string), strtolower($substring));
echo "Count: " . $count; // Output: Count: 3
Метод 2: использование preg_match_all
Пример кода:
$string = "Hello, hello, hELlo!";
$substring = "hello";
$count = preg_match_all("/$substring/i", $string, $matches);
echo "Count: " . count($matches[0]); // Output: Count: 3
Метод 3: использование разнесения и sizeof
Пример кода:
$string = "Hello, hello, hELlo!";
$substring = "hello";
$parts = explode(strtolower($substring), strtolower($string));
$count = sizeof($parts) - 1;
echo "Count: " . $count; // Output: Count: 3
Метод 4: использование substr_count с циклом
Пример кода:
$string = "Hello, hello, hELlo!";
$substring = "hello";
$count = 0;
$offset = 0;
while (($pos = stripos($string, $substring, $offset)) !== false) {
$offset = $pos + 1;
$count++;
}
echo "Count: " . $count; // Output: Count: 3
Метод 5: использование mb_substr_count (для многобайтовых строк)
Пример кода:
$string = "こんにちは、こんにちは、こんいちは!";
$substring = "こんにちは";
$count = mb_substr_count($string, $substring);
echo "Count: " . $count; // Output: Count: 3
Метод 6: использование str_replace и strlen
Пример кода:
$string = "Hello, hello, hELlo!";
$substring = "hello";
$replacedString = str_replace(strtolower($substring), '', strtolower($string));
$count = (strlen($string) - strlen($replacedString)) / strlen($substring);
echo "Count: " . $count; // Output: Count: 3
В этой статье мы рассмотрели шесть различных методов подсчета вхождений подстроки в PHP. Эти методы обеспечивают гибкость и могут использоваться в зависимости от ваших требований. Предпочитаете ли вы использовать встроенные функции, такие как substr_count, или предпочитаете альтернативы, такие как preg_match_all, или методы манипулирования строками, теперь у вас есть множество возможностей для эффективного подсчета вхождений подстроки в PHP.
Не забудьте выбрать метод, который соответствует вашему конкретному случаю использования, и наслаждайтесь гибкостью, которую PHP предлагает для манипулирования строками.