PHP 提供了多种字符串查找方法,以下是详细总结和示例:
1. 精确位置查找strpos()查找子字符串首次出现的位置(区分大小写)。
$string = "Hello, world!";$position = strpos($string, "world"); // 返回 7(从0开始计数)注意:若未找到,返回 false,建议用 === 严格比较。
strrpos()从字符串末尾开始查找首次出现的位置(区分大小写)。
$position = strrpos($string, "l"); // 返回 10(最后一个"l"的位置)
2. 不区分大小写查找- stripos() 和 strripos()功能同 strpos() 和 strrpos(),但不区分大小写。$string = "Hello, WORLD!";$position = stripos($string, "world"); // 返回 7
3. 正则表达式匹配4. 截取子字符串及之后内容- strstr()返回从指定子字符串开始到末尾的部分(区分大小写)。$substring = strstr($string, "world"); // 输出 "world!"
变体:stristr() 为不区分大小写版本。
5. 其他实用函数- substr_count()统计子字符串出现次数。$count = substr_count($string, "l"); // 返回 3
- strpbrk()查找字符串中任意指定字符首次出现的位置。$chars = strpbrk($string, "aeiou"); // 返回 "ello, world!"(第一个元音'e'开始)
使用建议- 简单查找:优先用 strpos() 或 stripos(),性能较高。
- 复杂模式:使用 preg_match(),但注意正则表达式可能影响性能。
- 截取内容:strstr() 适合直接获取子串后的部分。
示例汇总// 综合示例$text = "The quick brown fox jumps over the lazy dog.";// 查找位置echo strpos($text, "fox"); // 16// 不区分大小写查找echo stripos($text, "FOX"); // 16// 正则匹配单词preg_match("/bw{4}b/", $text, $matches); // 匹配第一个4字母单词("The")echo $matches[0];// 截取子串echo strstr($text, "jumps"); // "jumps over the lazy dog."通过选择合适的方法,可以高效处理字符串查找需求。