php判断字符串包含有五种方法:一、strpos()区分大小写,需用!==false判断;二、stripos()不区分大小写;三、strstr()返回子串或false;四、str_contains()(php8.0+)直接返回布尔值;五、preg_match()支持正则灵活匹配。

如果需要在PHP中判断一个字符串是否包含另一个字符串,则可能是由于业务逻辑要求对文本内容进行匹配或过滤。以下是实现字符串包含判断逻辑的多种方法:
一、使用 strpos() 函数
strpos() 函数返回子字符串在主字符串中首次出现的位置,若未找到则返回 false。该函数区分大小写,适合精确匹配场景。
1、定义主字符串和待查找的子字符串,例如 $haystack = "Hello World"; $needle = "World";
2、调用 strpos($haystack, $needle) 并将结果赋值给变量 $pos
3、使用 if ($pos !== false) 判断是否包含,注意必须使用严格比较 !== false 而非 != false,避免位置为 0 时误判
二、使用 stripos() 函数
stripos() 是 strpos() 的不区分大小写版本,适用于忽略大小写的包含判断需求。
1、设置 $haystack = "Hello WORLD"; $needle = "world"
2、执行 $pos = stripos($haystack, $needle)
3、检查 $pos !== false,此时即使大小写不一致也能正确识别包含关系 返回值仍为整数或 false,需严格比较
三、使用 strstr() 函数
strstr() 返回从子字符串首次出现位置开始到主字符串末尾的全部内容,若未找到则返回 false,可用于间接判断包含关系。
1、声明 $haystack = "PHP is awesome"; $needle = "is"
2、调用 $result = strstr($haystack, $needle)
3、通过 if ($result !== false) 确认包含,注意返回的是子串片段而非布尔值,不可直接用 empty() 或 ! 判断
四、使用 str_contains() 函数(PHP 8.0+)
str_contains() 是 PHP 8.0 引入的原生函数,专用于字符串包含判断,返回布尔值,语义清晰且无需处理返回类型歧义。
1、确保运行环境为 PHP 版本 8.0 或更高版本
2、编写表达式 str_contains($haystack, $needle),如 str_contains("Programming", "gram")
3、直接在条件语句中使用,例如 if (str_contains($haystack, $needle)) { ... }
五、使用正则表达式 preg_match()
preg_match() 提供更灵活的匹配能力,支持模式匹配、边界控制及修饰符,适用于复杂条件下的包含判断。
1、构造模式字符串,如 '/world/i' 表示不区分大小写匹配 "world"
2、调用 preg_match('/world/i', $haystack, $matches),其中第三个参数可省略
3、判断返回值是否为 1,返回 1 表示匹配成功,0 表示未匹配,false 表示发生错误
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











