ECshop校验文件生成MD5文件的代码

define(‘ROOT_PATH’, str_replace(basename( __FILE__), ”, str_replace(‘\’, ‘/’, __FILE__)));
 
ini_set(‘max_execution_time’, ‘300’);
 
checkfiles(‘./’, ‘.php’, 0);
checkfiles(‘admin/’, ‘.php|.htm|.js|.css|xml’);
checkfiles(‘api/’, ‘.php’);
checkfiles(‘includes/’, ‘.php|.html|.js’,1,’fckeditor’);    //fck不检查
checkfiles(‘js/’, ‘.js|.css’);
checkfiles(‘languages/’, ‘.php’);
checkfiles(‘plugins/’, ‘.php’);
checkfiles(‘wap/’, ‘.php|.wml’);
/*
checkfiles(‘themes/default/’, ‘.dwt|.lbi|.css’);   //模板
checkfiles(‘uc_client/’, ‘.php’, 0);
checkfiles(‘uc_client/control/’, ‘.php’);
checkfiles(‘uc_client/model/’, ‘.php’);
checkfiles(‘uc_client/lib/’, ‘.php’);
*/
 
file_put_contents(‘./admin/ecshopfiles.md5’,$md5str);   //保存文件校验信息
 
echo “MD5文件生成完成”;
 

/**检查文件
* @param  string $currentdir    //待检查目录
* @param  string $ext           //待检查的文件类型
* @param  int    $sub           //是否检查子目录
* @param  string $skip          //不检查的目录或文件
*/
function checkfiles($currentdir, $ext = ”, $sub = 1, $skip = ”)
{
    global $md5data, $md5str;
    $dir = @opendir(ROOT_PATH.$currentdir);
    $exts = ‘/(‘.$ext.’)$/i’;
    $skips = explode(‘,’, $skip);
 
    while($entry = @readdir($dir))
    {
        $file = $currentdir.$entry;
        if($entry != ‘.’ && $entry != ‘..’ && $entry != ‘.svn’ && (preg_match($exts, $entry) || $sub && is_dir($file)) && !in_array($entry, $skips))
        {
            if($sub && is_dir($file))
            {
                checkfiles($file.’/’, $ext, $sub, $skip);
            }
            else
            {
                if($file != ‘./md5.php’)
                {
                    $md5data[$file] = md5_file($file);
                    $md5str .= md5_file($file).’ *’.$file.”rn”;
                }
            }
 
        }
 
    }
}