strpos不会在负偏移上向后搜索

时间:2013-01-03 23:03:58

标签: php

更新:我正在查看strrpos的文档,认为它是strpos的文档。抱歉这个愚蠢的错误。

根据the docs,它表示当你提供一个负值作为偏移量参数时,该函数将从字符串末尾开始那么多字符,向后搜索。它甚至在例#2中显示了这一点。为什么我不能让这段代码正常工作?

$val = strpos('/imports/products/nin_avatar.png', '/', -2);

我正在尝试获取字符串中最后一个正斜杠的索引,但它一直返回false ..我尝试了几个不同的负偏移,但似乎都没有。我做错了吗?

4 个答案:

答案 0 :(得分:8)

它似乎可以作为现在用于新版本PHP的OP。


历史答案

strpos()的PHP手册说......

  

strrpos()strripos()不同,偏移量不能为负值。

Source

如果您在启用警告的情况下开发,这将更加明显。在您的开发实例中,使用error_reporting(E_ALL)

之类的内容

答案 1 :(得分:3)

使用strrpos代替strpos

答案 2 :(得分:1)

我不知道在提出这个问题时文档会说些什么,但如果我现在看到docs它说最新版本7.1.0支持负偏移,那么它似乎是一个对于像我这样在这个问题上遇到同样问题的人来说有点混乱

截至目前,strpos **支持负偏移。

**在7.1.0版本中

答案 3 :(得分:1)

PHP 7.1.0中添加了对负偏移的支持

http://php.net/manual/en/function.strpos.php