php网页病毒清除类


Posted in PHP onDecember 08, 2014

本文实例讲述了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程序设计有所帮助。

PHP 相关文章推荐
php设计模式 Builder(建造者模式)
Jun 26 PHP
PHP命名空间(Namespace)的使用详解
May 04 PHP
PHP速成大法
Jan 30 PHP
php实现简易聊天室应用代码
Sep 23 PHP
php开发工具有哪五款
Nov 09 PHP
WordPress中创建用户角色的相关PHP函数使用详解
Dec 25 PHP
Zend Framework入门教程之Zend_Session会话操作详解
Dec 08 PHP
php session的应用详细介绍
Mar 22 PHP
PHP 7.0新增加的特性介绍
Jun 08 PHP
php curl操作API接口类完整示例
May 21 PHP
浅谈laravel 5.6 安装 windows上使用composer的安装过程
Oct 18 PHP
PHP如何使用array_unshift()在数组开头插入元素
Sep 01 PHP
ThinkPHP入口文件设置及相关注意事项分析
Dec 05 #PHP
简单实用的PHP防注入类实例
Dec 05 #PHP
ThinkPHP连接数据库的方式汇总
Dec 05 #PHP
PHP生成RSS文件类实例
Dec 05 #PHP
php实现两表合并成新表并且有序排列的方法
Dec 05 #PHP
ThinkPHP中redirect用法分析
Dec 05 #PHP
php查询ip所在地的方法
Dec 05 #PHP
You might like
smarty简单应用实例
2015/11/03 PHP
PHP封装的字符串加密解密函数
2015/12/18 PHP
php的laravel框架快速集成微信登录的方法
2016/12/12 PHP
LAMP环境使用Composer安装Laravel的方法
2017/03/25 PHP
用JavaScript获取网页中的js、css、Flash等文件
2006/12/20 Javascript
jquery点击页面任何区域实现鼠标焦点十字效果
2013/06/21 Javascript
javascript函数式编程实例分析
2015/04/25 Javascript
javascript中mouseover、mouseout使用详解
2015/07/19 Javascript
js中substring和substr两者区别和使用方法
2015/11/09 Javascript
BootStrap Fileinput初始化时的一些参数
2016/12/30 Javascript
vue.js 初体验之Chrome 插件开发实录
2017/05/13 Javascript
微信小程序富文本渲染引擎的详解
2017/09/30 Javascript
原生JS实现循环Nodelist Dom列表的4种方式示例
2018/02/11 Javascript
jquery 实现拖动文件上传加载进度条功能
2018/03/18 jQuery
js实现搜索栏效果
2018/11/16 Javascript
超好用的jQuery分页插件jpaginate用法示例【附源码下载】
2018/12/06 jQuery
vue 判断两个时间插件结束时间必选大于开始时间的代码
2020/11/04 Javascript
Python3.x和Python2.x的区别介绍
2013/02/12 Python
Python实现的检测网站挂马程序
2014/11/30 Python
Python tkinter模块中类继承的三种方式分析
2017/08/08 Python
Python3之简单搭建自带服务器的实例讲解
2018/06/04 Python
Python collections中的双向队列deque简单介绍详解
2019/11/04 Python
Python numpy线性代数用法实例解析
2019/11/15 Python
新建文件时Pycharm中自动设置头部模板信息的方法
2020/04/17 Python
python利用google翻译方法实例(翻译字幕文件)
2020/09/21 Python
python删除文件、清空目录的实现方法
2020/09/23 Python
用python制作个视频下载器
2021/02/01 Python
CSS3 :nth-child()伪类选择器实现奇偶行显示不同样式
2013/11/05 HTML / CSS
澳大利亚票务和娱乐市场领导者:Ticketmaster
2017/03/03 全球购物
Java基础面试题
2012/11/02 面试题
小学六年级学生评语
2014/04/22 职场文书
淘宝好评语大全
2014/05/05 职场文书
假释思想汇报范文
2014/10/11 职场文书
2015年母亲节活动总结
2015/02/10 职场文书
2016大学军训通讯稿
2015/11/25 职场文书
使用@Value值注入及配置文件组件扫描
2021/07/09 Java/Android