興味深い問題: ファイルとディレクトリの山からキーワードを検索すると、関数がファイル名を配列として返します。
$files = array();
function search_in_dir($dir, $str) {
foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir)) as $filename) {
$files[] = $filename;
}
foreach ($files as $k => $file) {
$source = file_get_contents($file);
if (strpos($source, $str) === false) {
unset($files[$k]);
}
}
return array_filter($files);
}
$filenamesWithPaths = search_in_dir("/home/Documents", "testKeyword");
変数$filenamesWithPaths
には、ファイル名とパスの配列が含まれるようになりました。ただし、最終的に達成したいのは、連想配列、またはファイル名を含むパスと周囲のテキスト (私の場合は HTML コード) を含むコレクションです。
キーワードが見つかった行全体を返し、それを他の命令でさらに削除することは想像に難くないでしょう。