如何遍历一个文件夹下的所有文件,并用md5函数算出所有文件的md5值?(用php实现)

如题所述

第1个回答  2012-03-20
function file_read_all ($dir)
{
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
$n=0;
while (($file = readdir($dh)) !== false) {
if ( $file == '.' or $file =='..' or $file=='.svn')
{
continue;
}
echo md5_file($dir.$file);//计算每个文件md5值 echo '<br />';
if (is_dir ($dir.$file))
{
file_read_all ($dir.$file.'/');
}
}
}
closedir($dh);
}
}
第2个回答  2012-03-24
<?php
function getAllFileMd5($dir){
$hash = '';
$dir = new RecursiveDirectoryIterator($dir);
foreach(new RecursiveIteratorIterator($dir) as $file) {
$hash .= md5_file($file);
}
return md5($hash);
}
?>本回答被网友采纳
第3个回答  2012-03-19
function file_read_all ($dir)
{
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
$n=0;
while (($file = readdir($dh)) !== false) {
if ( $file == '.' or $file =='..' or $file=='.svn')
{
continue;
}
echo $dir.$file;
echo '<br />';
if (is_dir ($dir.$file))
{
file_read_all ($dir.$file.'/');
}
}
}
closedir($dh);
}
}

这是遍历文件夹下的所有文件追问

亲~加密呢?

追答

md5单向加密的,你可以制定加密规则的啊?之后判断就可以了?

追问

能给点code 么??

追答

//自定义加密函数
function code_md5($password,$pre_str='file',$next_str='cms')
{
return md5($pre_str.$password.$next_str);

}
这是实现一个md5加密的函数,你把每个文件夹传进去就可以了看到MD5加密后的值了,应该是32位