仅在 FreeBSD 上测试...
string
在传递目录的所有文件中查找(仅限*nix):
<?php
$searchDir = './';
$searchString = 'a test';
$result = shell_exec('grep -Ri "'.$searchString.'" '.$searchDir);
echo '<pre>'.$result.'</pre>';
?>
仅使用 PHP 在传递的目录中查找string
所有文件(不推荐在大量文件中使用):
<?php
$searchDir = './';
$searchExtList = array('.php','.html');
$searchString = 'a test';
$allFiles = everythingFrom($searchDir,$searchExtList,$searchString);
var_dump($allFiles);
function everythingFrom($baseDir,$extList,$searchStr) {
$ob = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($baseDir), RecursiveIteratorIterator::SELF_FIRST);
foreach($ob as $name => $object){
if (is_file($name)) {
foreach($extList as $k => $ext) {
if (substr($name,(strlen($ext) * -1)) == $ext) {
$tmp = file_get_contents($name);
if (strpos($tmp,$searchStr) !== false) {
$files[] = $name;
}
}
}
}
}
return $files;
}
?>
编辑:基于更多细节的更正。