首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Stripos从字符串末尾开始

Stripos从字符串末尾开始
EN

Stack Overflow用户
提问于 2013-04-10 08:22:47
回答 2查看 248关注 0票数 0

我有一些代码搜索一个巨大的日志文件,并找到一个关键字,对于大多数情况下,这是接近文档的底部。在这种情况下,从底部开始搜索并向上搜索会更有效率。

代码语言:javascript
复制
$pos = stripos($body,$keyword);  
$snippet_pre = substr($body, $pos, SNIPPET_LENGTH);

我已经研究了strripos,虽然它做的是我想要的,就像在查找最后一个匹配项一样,但听起来它是从文档的开头开始搜索的,所以我将在查询中添加许多不必要的工作,因为大多数关键字都在字符串/文档的底部附近

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-10 08:27:12

按换行符分解日志文件以获得一个数组。反转您的数组,现在您可以从末尾逐行搜索。

代码语言:javascript
复制
$lines = explode("\n",$body);
$reversed = array_reverse($lines);
foreach($reversed AS $line) {
   // Search for your keyword
}

如果您谈论的是一个庞大的日志文件,以至于您绝对不想将其全部读入内存,那么您也可以考虑反向查找方法,尽管这通常不是必需的。请看这里:

Read a file backwards line by line using fseek

票数 1
EN

Stack Overflow用户

发布于 2013-04-10 09:05:21

如果将负偏移量设置为第三个参数,则strripos将从末尾开始并向后搜索。

代码语言:javascript
复制
$pos = stripos($body,$keyword,$offset);
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15914876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档