字符串函数

PHP substr_count() 函数

主题:PHP 字符串参考上一页|下一页

说明

substr_count() 函数计算子串在字符串中出现的次数。

请注意,子字符串搜索是以区分大小写的方式执行的。

下表总结了该函数的技术细节。

返回值: 返回子字符串在字符串中出现的次数。
变更日志: 自 PHP 7.1.0 起,startlength 参数现在可能是负数。 length 参数现在也可能为 0。
版本: PHP 4+

语法

substr_count() 函数的基本语法如下:

substr_count(string, substring, start, length);

下面的例子展示了 substr_count() 函数的作用。

<?php
// 示例字符串
$str = "The woodpeckers live in the woods.";
$substr = "wood";

// 计算子串出现次数
echo substr_count($str, $substr);
?>

参数

substr_count() 函数接受以下参数。

参数 说明
string 必填。 指定要搜索的字符串。
substring 必填。 指定要搜索的子字符串。
start 可选。 指定开始计数的字符串中的位置。 如果为负数,则从字符串末尾开始计数。
length 可选。 指定搜索子字符串的最大长度(在指定的 start 之后)。 负长度从字符串末尾开始计数。

更多示例

这里有更多示例展示了 substr_count() 函数的实际工作原理:

以下示例演示了不同参数的用法。

<?php
// 示例字符串
$str = "The woodpeckers live in the woods.";
$substr = "wood";

// 获取字符串的原始长度
echo strlen($str)."<br>"; // Prints: 34

// 字符串被简化为 'woodpeckers',所以它打印 1
echo substr_count($str, $substr, 4, 11)."<br>";

// 字符串被简化为 'the wood',所以它打印 1
echo substr_count($str, $substr, -10, 9)."<br>";

// 字符串被缩减为 'live in',所以它打印 0
echo substr_count($str, $substr, 16, 7);
?>

此函数不计算重叠子字符串,如下例所示。

<?php
// 示例字符串
$str = "abcabcabc";
$substr = "abcabc";

// 计算子串出现次数
echo substr_count($str, $substr); // Prints: 1 (not 2)
?>

如果 startlength 参数值的总和大于 string 的长度,则此函数会生成警告。 让我们看一下下面的例子:

<?php
// 示例字符串
$str = "The woodpeckers live in the woods.";
$substr = "wood";

// 生成警告,因为 10 + 30 > 34
echo substr_count($str, $substr, 10, 30);
?>
Advertisements