首页 > 解决方案 > 如何在PHP中的某个字符之后获取一行?

问题描述

我使用 explode() 但我只能在同一行中获取关键字之前或之后。但是如果我想在关键字后面加一行例如

你好谷歌

早上好脸书

下午好推特

如何通过使用“Google”作为搜索关键字来获得“早上好 Facebook”?

每次搜索的行号都不相同,但关键字相同。

我的条件是我无法将所有示例文本作为一个字符串。内容在一个文件中,所有文件都是一个字符串。我必须搜索特定的关键字,然后我需要关键字行之后的一整行。

标签: php

解决方案


非正则表达式解决方案:

循环数组的行,当找到“Google”时,将数组位置继续到下一项。
然后,如果 line 不为空且 found 为 true,则中断循环, line 将是您要查找的行。

$str = 'Hello Google

Good morning Facebook

Good Afternoon Twitter';

$arr = explode("\n", $str);

$found = false;
foreach($arr as $line){
    if(strpos($line, "Google")){
        $found = true;
        continue;
    }
    if($found && $line != "") Break;
}
Echo $line;

https://3v4l.org/ME6B7


推荐阅读