PHP函数演示:检查字符串是否包含指定子串
发布时间:2023-06-10 19:56:34
在PHP中,检查一个字符串是否包含指定的子串可以使用内置的函数strpos()或者strstr(),两者实现有些不同。
strpos()函数返回字符串中第一次出现指定子串的位置,如果没有找到子串则返回false。语法为:
int strpos (string $haystack , mixed $needle [, int $offset = 0 ])
其中,$haystack为要搜索的字符串,$needle为要查找的子串,$offset为可选参数,指定开始搜索的位置。
例如:
$str = "Hello world!";
if (strpos($str, "world") !== false) {
echo "包含该子串";
} else {
echo "不包含该子串";
}
上述代码中,如果字符串中包含指定子串"world",则输出"包含该子串",否则输出"不包含该子串"。
但是需要注意的是,如果$needle为0或者为空字符串"",则strpos()函数会返回0,这可能会被误认为没有找到子串,需按如下方式判断:
if (strpos($str, "needle") !== false) {
// 包含该子串
} else if (strpos($str, "needle") !== 0){
// 未找到该子串
}
strstr()函数与strpos()函数相似,但是它返回字符串中第一次出现指定子串及其后面的部分,如果没有找到子串则返回false。语法为:
string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] )
其中,$haystack为要搜索的字符串,$needle为要查找的子串,$before_needle为可选参数,如果设为true则返回子串之前的部分。
例如:
$str = "Hello world!";
if (strstr($str, "world")) {
echo "包含该子串";
} else {
echo "不包含该子串";
}
上述代码中,如果字符串中包含指定子串"world",则输出"包含该子串",否则输出"不包含该子串"。
综上所述,PHP内置函数strpos()和strstr()都可以用来检查字符串是否包含指定子串,根据具体情况选择使用。
