grep with -f like in PHP

时间:2012-05-19 08:26:59

标签: php grep

在PHP中是否有这样的函数在unix / linux系统中执行grep -f filename。 如果没有,那么PHP函数/工具将有助于为此创建自定义方法/函数。谢谢!

2 个答案:

答案 0 :(得分:10)

实际上恕我直言,我会说以下内容:

$result = preg_grep($pattern, file($path));

请参阅preg_grep­Docsfile­Docs

如果您需要(递归地)对一组文件执行此操作,还有globforeach或(RecursiveDirectoryIterator或{{ 3}}而不要忘记GlobIterator­Docs


SplFileObject RegexIterator 的示例:

$stream = new SplFileObject($file); 
$grepped = new RegexIterator($stream, $pattern); 

foreach ($grepped as $line) {
    echo $line;
}

输出(包含$ pattern的$file的所有行):

$grepped = new RegexIterator($stream, $pattern); 
foreach ($grepped as $line) {
    echo $line;
}

演示:RegexIterator­Docs

答案 1 :(得分:2)

您可以组合file_get_contens()功能打开文件,preg_match_all()功能可以使用正则表达式捕获内容。

$file = file_get_contents ('path/to/file.ext');
preg_match_all ('regex_pattern_here', $file, $matches);
print_r ($matches);