PHP 中是否有这样的函数在 unix/linux 系统中执行 grep -f 文件名。如果没有,哪些 PHP 函数/工具将有助于为此创建自定义方法/函数。谢谢!
问问题
14876 次
2 回答
10
实际上恕我直言,我想说的是:
$result = preg_grep($pattern, file($path));
如果您需要(递归地)对一组文件执行此操作,则还有glob
andforeach
或 ( Recursive
)DirectoryIterator
或 文档,不要忘记 文档。GlobIterator
RegexIterator
SplFileObject和RegexIterator的示例:
$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;
}
于 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 回答