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()
用于返回从子字符串开始到字符串末尾的所有字符。选择哪个函数取决于具体的需求和用法。