函式名:strpos()
適用版本:所有PHP版本
用法:strpos()函式用於在一個字串中查詢另一個字串第一次出現的位置。它返回第一次匹配的位置索引,如果未找到匹配項,則返回false。
語法:int strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )
引數:
- haystack:要在其中查詢的字串。
- needle:要查詢的字串。
- offset(可選):指定開始查詢的位置,預設為0。
返回值:返回匹配項的位置索引,如果未找到匹配項,則返回false。
示例:
// 示例1:查詢字串中的子字串
$haystack = "Hello, world!";
$needle = "world";
$position = strpos($haystack, $needle);
if ($position !== false) {
echo "找到了'$needle',位置是 $position";
} else {
echo "未找到'$needle'";
}
// 輸出:找到了'world',位置是 7
// 示例2:指定開始查詢的位置
$haystack = "Hello, world!";
$needle = "o";
$position = strpos($haystack, $needle, 5);
if ($position !== false) {
echo "找到了'$needle',位置是 $position";
} else {
echo "未找到'$needle'";
}
// 輸出:找到了'o',位置是 8
// 示例3:未找到匹配項
$haystack = "Hello, world!";
$needle = "foo";
$position = strpos($haystack, $needle);
if ($position !== false) {
echo "找到了'$needle',位置是 $position";
} else {
echo "未找到'$needle'";
}
// 輸出:未找到'foo'
注意事項:
- 如果要檢查一個字串是否包含另一個字串,應使用恆等運算子(===)來判斷返回值是否為false,因為匹配位置可能是0,0在PHP中被視為false。
- 如果needle是一個空字串,strpos()將返回0,因此要使用恆等運算子(===)來判斷返回值是否為false。