6

更新:我正在查看文档,因为我strrpos认为它是strpos. 对不起愚蠢的错误。

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

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

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

4

4 回答 4

8

似乎它现在可以在新版本的 PHP 中按 OP 的方式工作。


历史答案

PHP手册strpos()说...

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

来源

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

于 2013-01-03T23:06:18.087 回答
3

使用strrpos而不是strpos.

于 2013-01-03T23:06:34.540 回答
1

当被问到这个问题时,我不知道文档是怎么说的,但是如果我现在看到文档,它说最新版本 7.1.0 支持负偏移量,对于像我这样的人来说,这似乎有点混乱与此问题相同的问题

因此,到目前为止,strpos** 支持负偏移量。

** 在 7.1.0 版本中

于 2017-05-18T08:27:58.163 回答
1

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

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

于 2017-12-10T22:19:00.667 回答