有趣的问题:我在一堆文件和目录中搜索关键字,我的函数将文件名作为数组返回:
$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 代码)。
可以想象返回找到关键字的整行,然后我用其他指令进一步修剪它。