8

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

4

2 回答 2

10

实际上恕我直言,我想说的是:

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

文档文档preg_grepfile

如果您需要(递归地)对一组文件执行此操作,则还有globandforeach或 ( Recursive)DirectoryIterator文档,不要忘记 文档GlobIteratorRegexIterator


SplFileObjectRegexIterator的示例:

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

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

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

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

演示:https ://eval.in/208699

于 2012-05-19T12:10:20.210 回答
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);
于 2012-05-19T08:30:46.207 回答