您当前的位置: 首页 > 网站编程 > PHP教程 > PHP监控服务器文件目录

PHP监控服务器文件目录

作者:guanchaofeng 来源:不详 发布时间: 2009-10-26 15:14 点击:
目录监控的实现原理是记录被监控目录(包含子目录)下的文件的MD5值,并保存Log,当第二次重新扫描该目录的时候,与上一次的LOG进行比较,从而获知文件的新增、编辑、删除等情况。 注意事项: 1、md5_file在处理大文件的时候效率不高,因此如果目录中存在较

PHP监控服务器文件目录

  目录监控的实现原理是记录被监控目录(包含子目录)下的文件的MD5值,并保存Log,当第二次重新扫描该目录的时候,与上一次的LOG进行比较,从而获知文件的“新增”、“编辑”、“删除”等情况。

  注意事项:

  1、md5_file在处理大文件的时候效率不高,因此如果目录中存在较大文件,请自行加入一个忽略选项,将该文件忽略,否则会影响执行时间。

  2、如果您使用的是Linux服务器,那么请自行建立相应的Log文件,并设置权限为可写。

  完整的代码如下:
<?php
/**
*
* 目录监控
*
* @author 郭瑞超 (grc1988#gmail.com)
* @date 2009-04-15
* @license BSD
* @package common
* @version 0.0.1
*
**/
set_time_limit(0);
define('M_PATH','.'); //设置监控的目录,当前目录为'.',上一级目录为'..',也可以设置绝对路径,后面不要加斜杠
define('M_LOG','../m.log'); //设置存储log的路径,可以放置在任意位置
$file_list = array();
function record_md5($dir){
global $file_list;
if(is_dir($dir)){
$file=scandir($dir);
foreach($file as $f){
if($f!='.' && $f!='..'){
$path = $dir.'/'.$f;
if(is_dir($path)){
record_md5($path);
}else{
$file_list[$path]=md5_file($path);
}
}
}
}
}
record_md5(M_PATH);
if(file_exists(M_LOG)){
$log = unserialize(file_get_contents(M_LOG));
}else{
$log = array();
}
file_put_contents(M_LOG,serialize($file_list));
if(count($file_list) > 0 ){
foreach($file_list as $file => $md5){
if(!isset($log[$file])){
print '新增:'.$file.'<br />';
}else{
if($log[$file] != $md5){
print '修改:'.$file."<br />";

unset($log[$file])
}else{
unset($log[$file]);
}
}
}
}
if(count($log)>0){
foreach($log as $file => $md5){
print "删除:".$file."<br />";
}
}
?>

分享到:
本文"PHP监控服务器文件目录"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4