问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

php 检测源代码是否被改动过和是否项目中有增加或删除的文件的实现思路

发布网友 发布时间:2022-04-06 03:20

我来回答

5个回答

懂视网 时间:2022-04-06 07:41

php判断文件是否被修改的方法:首先设计网页页面;然后创建一个表单,通过文件域提交要判断的文件,接着获取表单中提交的文件路径,应用【filectime()】和【filemtime()】函数对提交的文件进行检测;最后,输出检测结果。

【相关学习推荐:php图文教程】

php判断文件是否被修改的方法:

关键技术:

本实例主要应用filectime()filemtime()函数,检测文件的incode最后改变时间和最后的修改时间,并应用date()函数对检测返回的时间戳进行格式化.

filectime()函数,返回指定文件filename的inode最后改变时间,语法如下:

int filectime(string filename);

成功则返回UNIX时间戳,否则返回FALSE.

设计过程:

首先,设计网页页面,然后,创建一个表单,通过文件域提交要判断的文件,接着,获取表单中提交的文件路径,应用filectime()和filemtime()函数对提交的文件进行检测,最后,输出检测结果.

index.php文件的关键代码如下:

<?php 
 $file=iconv("utf-8","gb2312",$_POST['files']);  //实现编码格式的转换 
 if(file_exists($file)){     //判断文件是否存在 
  $change_time=filectime($file);   //获取文件的最后incode时间 
  $time=date("Y-m-d h:i:s",$change_time);  //时间戳的格式化 
  $last_time=filemtime($file);   //获取文件的最后修改时间 
  $times=date("Y-m-d h:i:s",$last_time);  //时间戳的格式化 
 }else{ 
  $result="该文件不存在"; 
 } 
?>

核心:获取文件的最后访问时间.

通过文件系统函数不但可以获取文件的最后修改时间,而且可以获取文件的最后访问时间,其应用的是fileatime()函数.

相关学习推荐:php编程(视频)

热心网友 时间:2022-04-06 04:49

如果想自己做, hashtable是一定的

建一个hashtable, 储存当前内容, 同时该hashtable的id也同样可以用于作为文件功能等记录的id之用, 然后无论是windows还是linux都可以cron的,去做一个php文件去匹配吧, 文件修改时间无所谓的, md5(file)更有意义

如果单纯使用php, 遍历目录是必须的, 无论哪个os都提供文件动作的监控能力,但是这不在php的工作范围内,所以无法实现所谓的监控,你可以看看同步类软件,无论哪个操作系统都是直接去os的基层拿现成的东西来用,不用特地耗费资源去自己不断遍历目录监控的,

svn/cvs是主动提交改动的, 而所谓监控,那就是被动形式了,只有在改动时才有动作的叫监控,

你要php实现源码监控,一句话,不可能,只能做递归/迭代, 用hashtable处理并不断操作hashdb

ps:文件功能你们都不写进注释吗,注释本来就有这种功能, 比如phpdoc-_

热心网友 时间:2022-04-06 06:07

使用file_md5获得文件的MD5值,比较MD5可以判断文件是否被修改过.再加以辅助字段,如文件大小可以判断文件内容是否增加,相同size的,判断MD5,至少于删除的.数据库的文件列表与当前列表中不一致的.当前列表没有就是被删除的,用别的颜色显示,数据库中的列表中没有的,则是后来增加的.别的颜色表示(添加一个功能,使用新增文件可以添加到数据库文件列表中去.)
==================
我想大致能满足你的需求了.
其实还是用svn或cvs比较好.记录每个文件的功能可以写在文件的注释段中嘛.
另外把文件名规范一下,做到见名识义就行.何必搞这么复杂.
自已开发这样的一个系统并不好,我想用不了多久就会丢弃的.

热心网友 时间:2022-04-06 07:42

看修改时间? filemtime ?

热心网友 时间:2022-04-06 09:33

SVN,CVS
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我在石家庄我的显卡坏了过了保修期我想问一下哪里可以修? 梦见蹲了半天的茅房 2016寒假小结作文怎么写 荣耀9,为什么电量现在越来越不耐用,之前更 哪些是易燃易爆场所 加油站有哪些消防安全隐患 说美国和苏联可以毁灭地球若干次的说法是怎么算出来的? 上证指数的年线怎么看? 早教中心需要什么证件 开办早教中心需要哪些许可证 在PHP中怎么判断一个文件被修改? php中如何把XML转换成字符串 怎么从一台电脑的浏览器输入地址访问另一台电脑服务器(WAMP服务器已搭建,PHPSTORM装好了) 如何让局域网的其他电脑访问我的wamp server 服务 Wamp局域网不能访问(localhost和127.0.01能访问) 我学php用的是wamp集成环境,每次访问的时候只能用localhost或者是127.0.0.1才能访问,我想问下 本地的PHP网站,如何在局域网中的其它机子上打开? 我在本地搭建了PHP+Apache环境,做了一个网站,如何让局域网内的人都能访问我的电脑上的本地网站呢? 使用wamp在我的电脑ie输入localhost或127.0.0.1可以访问网页但是局域网内的电脑上不能访问? 关于wamp局域网其他电脑访问localhost的问题 用php设计的一个网站,用wamp搭建的环境,安装在局域网上,应该是外网不能访问 用phpwind-wamp-4.9安装的局域网论坛,只有本机可以进入论坛,局域网内其他机器都连接不上,什么原因? PHPnow搭建的虚拟环境为什么局域网里不能访问? 在我的电脑上wamp架设的php,自己访问没有问题,用局域网内的其他电脑访问的时候为什么只显示文字内容 我用php写了一个小程序 想在局域网内让其他计算机访问我的服务器测试一下,可是现在怎么也无法连接上 用xampp搭建的php集成环境,在同一局域网的电脑却访问不了,应该怎样设置??? wamp局域网不能访问, 本地php的wamp集成环境,局域网下别人用ip访问错误是forbidden是什么原因,见下图 wampserver 2.4.27 搭建PHP网站,本地可访问,局域网访问不了,昨办? 搭建好PHP后其他电脑无法访问局域网的服务器 php 如何判断文本文件里的内容有没有改变 监视php站点代码是否被人改动过。使代码被更改时让我知道。有什么方法? 所有php文件被改 请问PHP有没有可以判断文件是否正在被写入的函数? - PHP进阶讨论 如何监控文件夹里内容是否变化 php 能否用PHP判断一个php文件是否有语法错误 PHP文件判断 PHP中怎么判断上传文件是否从复??, php 如何判断文件是否被锁 php如何检测文件内是否存在特定内容 PHP 文件修改问题 php怎么判断1个文件是否正确或者上传成功 php如何在字符串中插入变量 如何在PHP字符串中加入变量 如何使用php在指定位置插入指定的字符串 PHP如何在指定位置插入相关字符串 php如何在这段字符串中加入变量 教你如何在PHP字符串中加入变量 在php中如何输入字符串啊? 如何在PHP变量地址中插入空格