FreeBSD でのみテストされています...
渡されたディレクトリからすべてのファイル内を検索string
します (*nix のみ):
<?php
$searchDir = './';
$searchString = 'a test';
$result = shell_exec('grep -Ri "'.$searchString.'" '.$searchDir);
echo '<pre>'.$result.'</pre>';
?>
string
PHP のみを使用して、渡されたディレクトリからすべてのファイル内を検索します (ファイルの大きなリストではお勧めしません)。
<?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;
}
?>
編集:詳細に基づいて修正。