8

UNIX/Linuxシステムでgrep-ffilenameを実行するような関数はPHPにありますか。ない場合は、このためにカスタマイズされたメソッド/関数を作成するのにどのPHP関数/ツールが役立ちますか。ありがとう!

4

2 に答える 2

10

実際、私見ですが、次のようになります。

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

見る ドキュメントドキュメントpreg_grepfile

ファイルのセットに対して(再帰的に)それを行う必要がある場合は、globandforeachまたは(RecursiveDirectoryIteratorまたは ドキュメントと忘れないでください ドキュメント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 に答える