函数定义
语法
int|false strpos(string $haystack, mixed $needle, int $offset = 0)
参数
haystack:要搜索的字符串。needle:要查找的字符串。如果needle是一个数字,它将被转换为字符串。offset(可选):指定从哪个位置开始搜索,默认为0,即从字符串的开始处搜索。如果offset是负数,搜索将从字符串末尾开始计数的字符数开始。
返回值
如果找到
needle,则返回它在haystack中第一次出现的起始位置的数值索引。如果未找到
needle,则返回false。
示例
<?php
// 查找字符串"world"在"hello world"中第一次出现的位置
$pos = strpos("hello world", "world");
echo $pos; // 输出:6
// 查找字符串"foo"在"foobar"中第一次出现的位置
$pos = strpos("foobar", "foo");
echo $pos; // 输出:0
// 查找字符串"bar"在"foobar"中第一次出现的位置
$pos = strpos("foobar", "bar");
echo $pos; // 输出:3
// 从指定位置开始搜索
$pos = strpos("foobar", "o", 2);
echo $pos; // 输出:4
?>注意事项
索引是从
0开始计算的,所以字符串的第一个字符的索引是0。如果
needle是一个空字符串,strpos会返回0。如果
needle包含多字节字符,返回的索引可能不是预期的,因为strpos在这种情况下可能不会正确处理。使用
===操作符来测试strpos的返回值是必要的,因为返回值可能是0(表示needle在haystack的开头),这在布尔上下文中评估为false。