PHP实现整站搜索找到指定字符串并展示出来

      发布在:后端技术      评论:0 条评论

PHP实现整站搜索找到指定字符串并展示出来,还可以实现批量字符串替换,方便虚拟空间维护使用参考代码

<?php
function getAllDir($path, &$file_dir)
{
    if (!is_dir($path)) {
        return false;
    }
    $data = scandir($path);
    foreach ($data as $value) {
        if ($value != '.' && $value != '..') {
            if (is_dir($path . '/' . $value) && $value != '.' && $value != '..') {
                $file_dir[] = $path . '/' . $value;
                getAllDir($path . '/' . $value, $file_dir);
            }
        }
    }
}

set_time_limit(0);
$file_dir = Array();
$file_dir[] = $_SERVER['DOCUMENT_ROOT'];
getAllDir($_SERVER['DOCUMENT_ROOT'], $file_dir);
echo '<pre>';
print_r($file_dir);
print_r("共计统计到:" . count($file_dir) . "个文件夹<br/>\n\r");
$find_files = Array();

foreach ($file_dir as $dir) {
    $data = scandir($dir);
    foreach ($data as $d) {
        if ($d != '.' && $d != '..') {
            $file_name = $dir . DIRECTORY_SEPARATOR . $d;
            $pathinfo = pathinfo($file_name);


            if ($file_name != $_SERVER['SCRIPT_FILENAME']) {
               
                if (is_file($file_name) && $pathinfo['extension'] == 'html') {
                    $content = file_get_contents($file_name);
                    $n = "aliyuncsscn";
//                    字符串搜索是否存在 aliyuncsscn

                    if (strpos($content, $n) !== false) {
                        $find_files[] = $file_name;
//                        file_put_contents($file_name, $n . $content);
                    }
                } elseif (is_file($file_name) && $pathinfo ['extension'] == 'php') {
                    $content = file_get_contents($file_name);
                     $n = "aliyuncsscn";
                    if (strpos($content, $n) !== false) {
                        $find_files[] = $file_name;
//                        file_put_contents($file_name, $n . $content);
                    }
                }
            }
        }
    }
}
print_r("共找的:" . count($find_files) . "个文件夹<br/>\n\r");
print_r($find_files);
print_r('--------');


相关文章
热门推荐