strpos()
和strstr()
都是用于在字符串中查找子字符串的PHP内置函数,它们之间的主要区别在于它们的返回值和用法。
strpos()
: strpos()
函数返回字符串中第一次出现指定子字符串的位置(索引),如果未找到该子字符串,则返回false
。在使用strpos()
函数时,需要注意检查返回值是否严格等于false
,因为如果子字符串出现在字符串的第一个位置,strpos()
将返回0
,这可能会导致问题。$string = "Hello, World!";
$pos = strpos($string, "World");
if ($pos !== false) {
echo "Found 'World' at position: " . $pos;
} else {
echo "Not found";
}
strstr()
: strstr()
函数返回字符串中第一次出现指定子字符串及其余的部分,如果未找到该子字符串,则返回false
。与strpos()
不同,strstr()
返回的是从子字符串开始到字符串末尾的所有字符,而不是索引位置。$string = "Hello, World!";
$substring = strstr($string, "World");
if ($substring) {
echo $substring;
} else {
echo "Not found";
}
综上所述,strpos()
用于获取子字符串在字符串中的位置,而strstr()
用于返回从子字符串开始到字符串末尾的所有字符。选择哪个函数取决于具体的需求和用法。