php 字符串中是否包含指定字符串的多种方法
封面图
•
2026-04-09
•
PHP
8
0
0
0
在 PHP 中,判断一个字符串是否包含另一个指定字符串有多种方法,以下是常见的几种方式: --- ## ✅ 1. 使用 `strpos()` 函数 `strpos()` 函数返回子字符串在目标字符串中首次出现的位置(索引),如果找不到则返回 `false`。 ```php $mainStr = "Hello, world!"; $subStr = "world"; if (strpos($mainStr, $subStr) !== false) { echo "包含"; } else { echo "不包含"; } ``` > **注意**:使用 `!== false` 是因为 `strpos()` 返回的是整数位置,而 `false` 是布尔值,不能用 `==` 比较。 --- ## ✅ 2. 使用 `stripos()` 函数(忽略大小写) 与 `strpos()` 类似,但不区分大小写。 ```php $mainStr = "Hello, World!"; $subStr = "world"; if (stripos($mainStr, $subStr) !== false) { echo "包含(忽略大小写)"; } else { echo "不包含"; } ``` --- ## ✅ 3. 使用 `mb_strpos()`(支持多字节字符) 如果你处理的是中文、UTF-8 等多字节字符,建议使用 `mb_strpos()` 来避免字符截断问题。 ```php $mainStr = "你好,世界!"; $subStr = "世界"; if (mb_strpos($mainStr, $subStr) !== false) { echo "包含"; } else { echo "不包含"; } ``` --- ## ✅ 4. 使用 `strstr()` 函数 `strstr()` 返回从子字符串第一次出现开始的子串,如果未找到则返回 `false`。 ```php $mainStr = "Hello, world!"; $subStr = "world"; if (strstr($mainStr, $subStr)) { echo "包含"; } else { echo "不包含"; } ``` --- ## ✅ 5. 使用 `preg_match()` 正则表达式 虽然功能强大,但适合需要正则匹配的场景。 ```php $mainStr = "Hello, world!"; $subStr = "world"; if (preg_match("/$subStr/", $mainStr)) { echo "包含"; } else { echo "不包含"; } ``` > 注意:如果 `$subStr` 中含有正则特殊字符(如 `.`、`*` 等),需要先进行转义。 --- ## ✅ 6. 使用 `str_contains()`(PHP 8.0+) 这是最简洁的方法,直接返回布尔值。 ```php $mainStr = "Hello, world!"; $subStr = "world"; if (str_contains($mainStr, $subStr)) { echo "包含"; } else { echo "不包含"; } ``` > ✅ 推荐使用这个方法,代码简洁明了。 --- ## 📌 总结 | 方法 | 是否区分大小写 | 是否支持多字节 | 是否推荐 | |------|----------------|----------------|----------| | `strpos()` | 是 | 否 | ✅ | | `stripos()` | 否 | 否 | ✅ | | `mb_strpos()` | 是 | ✅ | ✅ | | `strstr()` | 是 | 否 | ✅ | | `preg_match()` | 可自定义 | ✅ | ✅(复杂情况) | | `str_contains()`(PHP 8.0+) | 是 | ✅ | ⭐️ | --- 如果你使用的是 PHP 8.0 或更高版本,强烈推荐使用 `str_contains()`,它是最直观、最安全的方式。
上一篇:
React AI 编程助手生成测试
下一篇:
Django 安装
标题录入,一次不能超过6条
留言
评论