function getMd5DirHash(string $dir): string
{
$array = [];
$dir = realpath($dir);
$fileSPLObjects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir), RecursiveIteratorIterator::CHILD_FIRST);
foreach($fileSPLObjects as $fullFileName => $fileSPLObject ) {
if ($fileSPLObject->isFile()) {
$array[] = $fullFileName;
}
}
$md5 = array_map('md5_file', $array);
return md5(implode('', $md5));
}
$array[] = md5_file($fullFileName);
#$md5 = array_map('md5_file', $array);
return md5(implode('', $array));
$md5=explode(' ',`tar -cf - /path/to/dir | md5sum`)[0];
upd. осторожно, используй относительные пути а не прямые, так как этот путь файлов так же хешируется