下载JBLOG 1.5.2 基于PHP+MySQL的博客程序

递归生成程序文件MD5 Hash

分类:技术学习  |  时间:2009-04-27 15:02  |  阅读:1872人/次  |  标签:PHP

基于保护程序源代码或作者版权等原因,你可能不希望别人修改你的源代码,这时可以给每个程序文件生成一个MD5 HASH值,然后安装的时候对每个文件的MD5进行对比,方可知道文件是否被修改过。

PHP对PHP文件进行递归MD5的速度是非常快的,我在本机用JBLOG进行测试,共162个文件,耗时仅为1.2秒左右。以下是程序的源代码:

 

  1. <?php 
  2. /* 
  3.     (C) 2008-2009 lisijie.com.cn. 
  4.     $QQ : 22823459  
  5.     $Email : lisijie86@gmail.com 
  6.     $Url : http://www.lisijie.com.cn 
  7. */ 
  8.  
  9. $dir = 'jblog'//要生成md5 hash的目录 
  10. $ext = array('.php'); //要进行md5的文件扩展名 
  11. $content = ''
  12. $count = 0; 
  13.  
  14. if ( is_dir($dir) ) { 
  15.     $stime = getmtime(); 
  16.     md5_dir($dir); 
  17.     file_put_contents('hash.txt'$content); 
  18.     $etime = getmtime(); 
  19.     exit('共<b>'.$count.'</b>个文件,耗时:'.number_format($etime-$stime, 6).'秒'); 
  20. else { 
  21.     exit($dir.' 目录不存在'); 
  22.  
  23. function getmtime() { 
  24.     $time = explode(' ', microtime()); 
  25.     return $time[0]+$time[1]; 
  26.  
  27. function md5_dir($dir) { 
  28.     global $ext
  29.     if ( $handle = opendir($dir) ) { 
  30.         while ( ($file = readdir($handle)) !== false ) { 
  31.             if ( $file != '.' && $file != '..' ) { 
  32.                 $path = $dir.DIRECTORY_SEPARATOR.$file
  33.                 if ( is_dir($path) ) { 
  34.                     md5_dir($path); 
  35.                 } elseif ( in_array(strrchr($file'.'), $ext) ) { 
  36.                     $GLOBALS['content'] .= "{$path}\t".md5_file($path)."\n"
  37.                     $GLOBALS['count'] ++; 
  38.                 } 
  39.             }  
  40.         } 
  41.     } 
  42. ?> 

 由于用到了 file_put_contents() 函数,所以需要PHP5以上版本,如果你的版本小于5,可以改为 fopen()、fwrite()等函数实现。

 

本站提供网站建设/程序开发/模板定制服务,价格从优,在线交谈点击这里给我发消息

4条评论 关于 “递归生成程序文件MD5 Hash”

  1. avatar
    沙发
    [回复] 无争 发表于: April 27th, 2009 at 15:51 pm

    我现在用的你的博客程序,怎么在首页显示图片?

  2. avatar
    板凳
    [回复] master 发表于: April 28th, 2009 at 18:59 pm

    可以添加个相册、然后添加个特效,就好了,呵呵

    Jesse 回复于 2009-04-29 11:25
    avatar
    下一版会提供相册。
  3. avatar
    地板
    [回复] 54250725 发表于: April 30th, 2009 at 0:39 am

    如果能加上留言版和音乐盒就更好了~


发表您的评论

 

点击换一张验证码