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 相关文章推荐
ThinkPHP写第一个模块应用
Feb 20 PHP
php结合安卓客户端实现查询交互实例
May 05 PHP
php实现的简单检验登陆类
Jun 18 PHP
php实现的验证码文件类实例
Jun 18 PHP
php实现smarty模板无限极分类的方法
Dec 07 PHP
WordPress中调试缩略图的相关PHP函数使用解析
Jan 07 PHP
Zend Framework教程之Zend_Config_Xml用法分析
Mar 23 PHP
深入理解PHP中的empty和isset函数
May 26 PHP
PHP处理CSV表格文件的常用操作方法总结
Jul 01 PHP
php 使用html5实现多文件上传实例
Oct 24 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
Jul 19 PHP
php利用云片网实现短信验证码功能的示例代码
Nov 18 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
PHP微信公众号自动发送红包API
2016/06/01 PHP
实例讲解PHP中使用命名空间
2019/01/27 PHP
PHP+mysql实现的三级联动菜单功能示例
2019/02/15 PHP
菜鸟javascript基础资料整理3 正则
2010/12/06 Javascript
javascript学习笔记(十三) js闭包介绍(转)
2012/06/20 Javascript
当滚动条滚动到页面底部自动加载增加内容的js代码
2014/05/13 Javascript
node.js中格式化数字增加千位符的几种方法
2015/07/03 Javascript
浅谈Nodejs中的作用域问题
2016/12/26 NodeJs
node学习记录之搭建web服务器教程
2017/02/16 Javascript
JS实现手写parseInt的方法示例
2017/09/24 Javascript
静态页面实现 include 引入公用代码的示例
2017/09/25 Javascript
weebox弹出窗口不居中显示的解决方法
2017/11/27 Javascript
解决修复npm安装全局模块权限的问题
2018/05/17 Javascript
Vue.js更改调试地址端口号的实例
2018/09/19 Javascript
vue路由对不同界面进行传参及跳转的总结
2019/04/20 Javascript
简单了解vue.js数组的常用操作
2019/06/17 Javascript
vue2.0项目集成Cesium的实现方法
2019/07/30 Javascript
小程序简单两栏瀑布流效果的实现
2019/12/18 Javascript
CKEditor扩展插件:自动排版功能autoformat插件实现方法详解
2020/02/06 Javascript
详解Python的单元测试
2015/04/28 Python
Python使用ftplib实现简易FTP客户端的方法
2015/06/03 Python
Nginx搭建HTTPS服务器和强制使用HTTPS访问的方法
2015/08/16 Python
Python实现将Excel转换为json的方法示例
2017/08/05 Python
Python从零开始创建区块链
2018/03/06 Python
使用Python的Django和layim实现即时通讯的方法
2018/05/25 Python
python中的tcp示例详解
2018/12/09 Python
解决keras backend 越跑越慢问题
2020/06/18 Python
python与pycharm有何区别
2020/07/01 Python
Docker如何部署Python项目的实现详解
2020/10/26 Python
美国办公用品购物网站:Quill.com
2016/09/01 全球购物
阿姆斯特丹城市卡:Amsterdam Pass
2019/12/01 全球购物
大学生档案自我鉴定(2篇)
2014/10/14 职场文书
2014年服务行业工作总结
2014/11/18 职场文书
面试通知邮件
2015/04/20 职场文书
2015年普法依法治理工作总结
2015/05/26 职场文书
导游词之无锡古运河
2019/11/14 职场文书