状况描述:
        我的一个网站被攻击,每个html页面都有恶意js代码
解决目标:
        手工去删除每个页面的恶意代码太费时,现在我想通过程序去遍历网站的目录及文件,遇到.html、.htm、.js类型的文件时打开并删除里面的代码
我在网上找的一个遍历文件的代码:这段代码可以遍历文件,但是没记住路径,导致我要改文件时不知道怎么打开文件,请各位帮帮忙,我PHP并不熟,只会最基础最基础的。<?php
function tree($directory) 

$mydir=dir($directory); 
echo "<ul>\n"; 
while($file=$mydir->read()){ 
if((is_dir("$directory/$file")) AND ($file!=".") AND ($file!="..")) 
{echo "<li><font color=\"#ff00cc\"><b>$file</b></font></li>\n"; 
tree("$directory/$file"); 

else{
    $a = explode('.',$file);
    if($a[1] == 'html' || $a[1] == 'htm')
   {
        //修改文件的代码,待写
            echo "<li>$file</li>\n"; 
        }    

}
echo "</ul>\n"; 
$mydir->close(); 

//开始运行echo "<h2>目录为粉红色</h2><br>\n"; 
tree("./"); 
?>

解决方案 »

  1.   

    <?php
    class listDirClass {
        var $dirPath;
        function openDir($dirPath) {
            $this->dirPath = $dirPath;
            if (is_dir($dirPath)) {
                $dir = opendir($dirPath);
                return $dir;
            }else {
                die("$dirPath is Not a Directory");
            }
        }
        function closeDir($dir) {
            closedir($dir);
        }
        function listDir($dir) {
            echo '<ol>';
            while($file = @readdir($dir)) {
                if($file!='.' && $file!='..') { // filter . and ..
                    $dd  = $this->dirPath;  //
                    $dd  = $dd.'/'.$file;
                    echo "<li>$file</li>";
                }
                if(is_dir($dd) && $file!='.' && $file!='..') { // is_dir 参数需要完整的路径
                    $subDir = $this->openDir($dd);
                    $this->listDir($subDir);
                    $this->closeDir($subDir);
                }
            }
            echo '</ol>';
            return true;
        }
    }$dirOpt = new listDirClass();
    $dirOpt->dirPath = 'D:\minzheng\DBUnity\obj';
    $dir = $dirOpt->openDir($dirOpt->dirPath);
    $dirOpt->listDir($dir);
    $dirOpt->closeDir($dir);?> 
      

  2.   


    function explorer($dir)
    {
        $list  = array();
        $files = array();
        $dirs  = array();    $dp = opendir($dir);    $list['name'] = $dir;    while ($file = readdir($dp))
        {
            if ($file != '.' && $file != '..')
            {
                $path = $dir . '/' . $file;
                if(is_dir($path))
                {
                    $dirs[] = explorer($path);
                }
                else
                {
                    $files[] = $path;
                }
            }
        }    closedir($dp);    $list['files'] = $files;
        $list['dirs'] = $dirs;    return $list;
    }print_r(explorer('C:\Program Files\PHP'));
    输出结果:Array
    (
        [name] => C:\Program Files\PHP
        [files] => Array
            (
                [0] => C:\Program Files\PHP/install.txt
                [1] => C:\Program Files\PHP/libeay32.dll
                [2] => C:\Program Files\PHP/libpq.dll
                [3] => C:\Program Files\PHP/license.txt
                [4] => C:\Program Files\PHP/news.txt
                [5] => C:\Program Files\PHP/phar.phar.bar
                [6] => C:\Program Files\PHP/pharcommand.phar
                [7] => C:\Program Files\PHP/php-win.exe
                [8] => C:\Program Files\PHP/php.exe
                [9] => C:\Program Files\PHP/php.gif
                [10] => C:\Program Files\PHP/php.ini
                [11] => C:\Program Files\PHP/php5apache2_2.dll
                [12] => C:\Program Files\PHP/php5apache2_2_filter.dll
                [13] => C:\Program Files\PHP/php5embed.lib
                [14] => C:\Program Files\PHP/php5ts.dll
                [15] => C:\Program Files\PHP/readme-redist-bins.txt
                [16] => C:\Program Files\PHP/ssleay32.dll
            )    [dirs] => Array
            (
                [0] => Array
                    (
                        [name] => C:\Program Files\PHP/dev
                        [files] => Array
                            (
                                [0] => C:\Program Files\PHP/dev/php5ts.lib
                            )                    [dirs] => Array
                            (
                            )                )            [1] => Array
                    (
                        [name] => C:\Program Files\PHP/ext
                        [files] => Array
                            (
                                [0] => C:\Program Files\PHP/ext/php_bz2.dll
                                [1] => C:\Program Files\PHP/ext/php_curl.dll
                                [2] => C:\Program Files\PHP/ext/php_exif.dll
                                [3] => C:\Program Files\PHP/ext/php_gd2.dll
                                [4] => C:\Program Files\PHP/ext/php_gettext.dll
                                [5] => C:\Program Files\PHP/ext/php_imap.dll
                                [6] => C:\Program Files\PHP/ext/php_mbstring.dll
                                [7] => C:\Program Files\PHP/ext/php_mssql.dll
                                [8] => C:\Program Files\PHP/ext/php_mysql.dll
                                [9] => C:\Program Files\PHP/ext/php_mysqli.dll
                                [10] => C:\Program Files\PHP/ext/php_openssl.dll
                                [11] => C:\Program Files\PHP/ext/php_pdo_mysql.dll
                                [12] => C:\Program Files\PHP/ext/php_pdo_odbc.dll
                                [13] => C:\Program Files\PHP/ext/php_pdo_sqlite.dll
                                [14] => C:\Program Files\PHP/ext/php_pgsql.dll
                                [15] => C:\Program Files\PHP/ext/php_soap.dll
                                [16] => C:\Program Files\PHP/ext/php_sockets.dll
                                [17] => C:\Program Files\PHP/ext/php_sqlite3.dll
                                [18] => C:\Program Files\PHP/ext/php_tidy.dll
                                [19] => C:\Program Files\PHP/ext/php_xmlrpc.dll
                            )                    [dirs] => Array
                            (
                            )                )        ))