strpos()

1. 定义

该函数查找特定子字符串首次出现的位置索引值(从 0 开始)。

2. 语法

strpos ( string $haystack , mixed $needle [, int $offset = 0 ] ) : int

3. 参数说明

参数 可选性 数据类型 描述
$haystack 必需 字符串 被查找的字符串
$needle 必需 字符串或整型 查找的字符串或索引值,区分大小写
$offset 可选 整型 开始查找的起始索引位置,如果是负数,则从字符串的最后第$offset位开始查找

4. 示例

<?php

// strpos()
// 查找特定子字符串首次出现的位置,成功时返回位置索引

$str = 'Hello, world!';
$char = 'o';

$res = strpos($str, $char);
echo $res,"\n";// 输出:4

// 从第六个位置开始查找
$res = strpos($str, $char, 5);
echo $res,"\n";// 输出:8

// 从倒数第五个位置开始查找,此时可当做 $str 被截取到只剩 最后五个字符(orld!),然后在这六个字符中查找,但返回结果还是以 子串 在 $str 的索引位置
$substr = 'rl';
$res = strpos($str, $substr, -5);
echo $res,"\n";// 输出:9
$res = strpos($str, $substr, -2);
echo $res,"\n";// (无输出,表示在字符串 $str 的最后两位中 没有找到子字符串 $substr)

// 查找子串 or
$char = 'or';
$res = strpos($str, $char);
echo $res,"\n";// 输出:8

// 不存在的子串
$char = 'ol';
$res = strpos($str, $char);
echo $res,"\n";// (无输出)

5. 延展阅读

  • stripos():返回特定子字符串首次出现的位置索引(不区分大小写)
  • strrpos():接受多个字符组成的子串,并返回该子串在指定字符串中最后出现的位置索引
  • strripos():接受多个字符组成的子串,并返回该子串在指定字符串中最后出现的位置索引(不区分大小写)
  • strstr():返回特定索引或特定子字符串首次出现的位置到字符串结尾的部分
  • strpbrk():查找特定字符串中,以特定字符(单个)位置开始的子串
  • substr():返回从某位置开始、特定长度的子字符串