уже глаза едёт в разные стороны,устал создавть:
<?php
@ini_set('register_globals', '0');
#error_reporting(E_ALL);
@set_time_limit(0) or die('set_time_limit() disabled on this host');
$database = './base.txt';
$database = load_base($database);
$folder = dirname(__FILE__);
$log_infected = './log_inf.txt';
$log_scanned = './log_scan.txt';
$fined = 0;
$scanned = 0;
function scan($folder, $database) {
if($dir = @dir($folder)){
while(($d = $dir->read()) !== false){
$is_dir = is_dir($folder.'/'.$d);
if($is_dir == false && $d !== '.' && $d !== '..')
check($folder.'/'.$d, $database);
elseif($is_dir == true && $d !== '.' && $d !== '..')
scan($folder.'/'.$d, $database);
}
$dir->close();
}
}
function check($file, $database) {
global $scanned, $fined, $log_scanned, $log_infected;
$infected = false;
$scanned++;
$filez = @file_get_contents($file);
if ($filez) {
foreach ($database as $virus) {
if (eregi($virus, $filez)) {
$infected = true;
$fined++;
log_($file, $log_infected);
}
}
if($infected == false){
return false;
log_($file, $log_scanned);
}else return true;
} else return false;
}
function load_base($file){
$fp = is_writable($file);
if(!$fp) die('Filed to open base file: ' . $file);
else{
$v = file($file);
for($i = 0; $i < count($v); $i++) $v[$i] = preg_replace("/\r\n/", '', $v[$i]);
return array($v, count($v));
}
}
function log_($reason, $file){
$fp = fopen($file, 'a');
if(!$fp) die('Filed to open log file: ' . $file);
else{
fwrite($fp, $reason."\r\n");
fclose($fp);
}
}
if(isset(_POST['scan']))
scan($folder, $database[0]);
?>
вообщем сначала работал код потом торопиться при написании начал и всё упало
Изменил: ZipeR (20.10.2010 / 05:45)