本文实例讲述了php网页病毒清除类。分享给大家供大家参考。具体如下: 相信很多人的网页经常被无故的在php,asp,html,js 等文件后台加上一些木马地址,造成了很大的困扰!我以前有个站就是这样,所以一恨之下写了这段代码,文章虽然有一点浪费资源了,但是总比我们手动清除要好吧,下面我为讲讲程序的清除病毒的原理吧. 首先们要读取 $checkFile 文件这个文章是判断一个文章 是否被感染了,如果是就会执行$savafile变量里面的txt文件路径的所有文件,进行按你infecFile病毒列表清除一次. 复制代码 代码如下:<?php Class clear_virus{ //public $content; public $infectFile ='virus.txt';//病毒文件列表文件 public $savefile ="save.txt";//所在查看病毒的文件列表 public $timep ='time.txt';//些记录清除病毒时间 public $checkFile ='e.php';//这里是设置 public $run =0; public $virus_type; public $replace ; public $filepath ; public $tag =0; function open_file(){ $this->read_virus(); $this->check_File(); if($this->run){ $this->update_time(); $this->read_file() ; foreach($this->filepath as $tmppath){ if(file_exists($tmppath)){ $tmp_file =file_get_contents($tmppath); print_r( $this->virus_type); for( $i=0;$i<sizeof($this->virus_type);$i++ ){ if( strrpos($tmp_file,$this->virus_type[$i])!== false){ $tmp_file =str_replace($this->virus_type[$i],'',$tmp_file); $this->tag =1; } } if( $this->tag ){ $handle =fopen($tmppath,'w'); fwrite($handle,$tmp_file); fclose($handle); unset($tmp_file); } }else{ ; } } } } function check_File(){ if(file_exists($this->checkFile) ){ $temp =file_get_contents($this->checkFile) ; echo $temp; foreach( $this->virus_type as $v_tmp ){ if( strrpos($temp,$v_tmp)!== false ){ $this->run =1; break; } } echo $this->run; unset($temp); }else{ $this->show_error(5); } } function update_time(){ if(file_exists($this->timep) ){ $tmp_time =date("Y-m-d H:i:s").chr(13).'|'; $tmp_fp =fopen($this->timep,'a+'); fwrite($tmp_fp,$tmp_time); fclose($tmp_fp); } } function read_File(){ if(file_exists($this->savefile) ){ $this->content =file($this->savefile); if(is_array($this->content)){ $this->filepath =$this->content; }else{ $this->show_error(3); } }else{ $this->show_error(4); } } function read_virus(){ if(file_exists($this->infectFile) ){ $this->replace =file($this->infectFile); if(is_array($this->replace)){ $this->virus_type=$this->replace; }else{ $this->show_error(1); } }else{ $this->show_error(2); } } function show_error($number){ $array = array( '1'=>'病毒文件未不能读取!', '2'=>'病毒文件列表不存在!', '3'=>'文件列表不存了', '4'=>'查杀的文件不存', '5'=>$this->$checkFile.'不存在了,请设置病毒感染文件' ); echo $array[$number]; } } $virus =new clear_virus; $virus->open_file(); ?> 希望本文所述对大家的PHP程序设计有所帮助。 |