函数定义
语法
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
。