strripos在php中返回第一个索引而不是最后一个索引?

时间:2012-10-31 07:36:37

标签: php string compare

我正在执行此操作。

$title = "Group CIO, Member of the Executive Committee";

 $pos = strripos($title,"cio");

我没有将$pos值设为8,而是将$pos值设为6。可能是什么原因?

5 个答案:

答案 0 :(得分:3)

我知道的所有*pos*函数都会返回匹配开始的索引。如果你想知道匹配结束的位置,只需添加字符串的长度并减去1:

$pos = strripos($title, "cio") + strlen("cio") - 1;

答案 1 :(得分:2)

因为它的位置是6 ......

0123456
Group CIO, Member...

答案 2 :(得分:2)

  

在haystack字符串中找到最后一次出现针的数字位置。

最后一次出现的是你的句子中的第二个在第6位开始

为什么你期望第8位?

答案 3 :(得分:2)

你为什么期待8?

让我演示一下:

000000000011111111112
012345678901234567890
Group CIO, Member of ...
      ^

来自the manual

  

返回针相对于针的位置   开始使用haystack字符串(与offset无关)。另请注意   字符串位置从0开始,而不是1

答案 4 :(得分:2)

strripos找到指针 last 出现的第一个字符。您必须手动添加针长度

$pos = strripos($title,"cio")+strlen("cio")-1;