substr_count()函數的基本語法如下:
substr_count(string $haystack, string $needle, int $offset = 0, int $length = NULL): int
$haystack :要搜索的主字符串。
$needle :要查找的子字符串(或單個字符)。
$offset :可選參數,指定從哪個位置開始查找(默認是從字符串的開頭開始)。
$length :可選參數,指定查找的最大長度(默認查找整個字符串)。
該函數返回一個整數,表示$needle在$haystack中出現的次數。如果$needle不存在於$haystack中,則返回0。
假設我們有一個字符串,我們想要統計其中某個字符的出現次數,下面是一個簡單的例子:
<?php
$string = "hello world, hello PHP!";
$char = "o";
// 使用 substr_count 函數統計字符 "o" 出現的次數
$count = substr_count($string, $char);
echo "字符 '$char' 出現的次數是: $count"; // 輸出:字符 'o' 出現的次數是: 3
?>
在上面的代碼中,我們統計了字符"o"在字符串"hello world, hello PHP!"中出現的次數,結果輸出為3。
除了統計單個字符出現次數外, substr_count()也可以用來統計子字符串在目標字符串中出現的次數。舉個例子:
<?php
$string = "abcabcabcabc";
$substring = "abc";
// 使用 substr_count 函數統計子字符串 "abc" 出現的次數
$count = substr_count($string, $substring);
echo "子字符串 '$substring' 出現的次數是: $count"; // 輸出:子字符串 'abc' 出現的次數是: 4
?>
在這個例子中,我們統計了子字符串"abc"在字符串"abcabcabcabc"中出現的次數,輸出結果為4。
substr_count()函數還支持offset和length參數,允許我們限制查找範圍。舉個例子:
<?php
$string = "hello world, hello PHP!";
$char = "o";
// 從索引位置 5 開始查找,最多查找 10 個字符
$count = substr_count($string, $char, 5, 10);
echo "字符 '$char' 從索引 5 開始,最多查找 10 個字符,出現的次數是: $count"; // 輸出:字符 'o' 從索引 5 開始,最多查找 10 個字符,出現的次數是: 1
?>
在此示例中,我們從字符串的第5 個字符開始,限制查找的最大長度為10 個字符,因此我們只統計了在"world, hello PHP!"部分的字符"o"的出現次數,結果為1。
substr_count()函數區分大小寫,因此"o"和"O"被認為是不同的字符。如果需要不區分大小寫的查找,可以先將字符串轉換為統一的大小寫,例如使用strtolower()或strtoupper() 。
例如:
<?php
$string = "Hello World, hello PHP!";
$char = "o";
// 將字符串轉換為小寫後再查找
$count = substr_count(strtolower($string), strtolower($char));
echo "字符 '$char' 在不区分大小写的情况下出現的次數是: $count"; // 輸出:字符 'o' 在不区分大小写的情况下出現的次數是: 3
?>
如果$needle是空字符串, substr_count()會返回0。這是因為一個空字符串無法作為子字符串來統計。