在PHP中是否有这样的函数在unix / linux系统中执行grep -f filename。 如果没有,那么PHP函数/工具将有助于为此创建自定义方法/函数。谢谢!
答案 0 :(得分:10)
实际上恕我直言,我会说以下内容:
$result = preg_grep($pattern, file($path));
如果您需要(递归地)对一组文件执行此操作,还有glob
和foreach
或(Recursive
)DirectoryIterator
或{{ 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;
}
答案 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);