Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function checksum($start = __DIR__, $filename = '.files.md5', $export = false) {
- $unknown_map = array();
- if (($dir = opendir($start)) !== false) {
- $unknown_map = (function (RecursiveDirectoryIterator $dir) {
- $all_files = array();
- foreach (new RecursiveIteratorIterator($dir) as $name => $object) {
- $all_files[$object->getPathname()] = md5_file($object->getPathname());
- }
- return $all_files;
- })(new RecursiveDirectoryIterator($start, FilesystemIterator::SKIP_DOTS));
- }
- if ($export === true) {
- file_put_contents($filename, "", FILE_APPEND);
- foreach($unknown_map as $path => $md5) {
- file_put_contents($filename, "{$md5} {$path}\n", FILE_APPEND);
- }
- return true;
- }
- $known_map = array();
- if (($file = fopen($filename, 'r')) !== false) {
- while (($line = fgets($file)) !== false) {
- preg_match_all("/([a-z0-9]{32})[\s](.*)[\r|\n]/u", $line, $result, PREG_SET_ORDER);
- list( , $f_md5, $f_to_check) = $result[0]; $known_map[$f_to_check] = $f_md5;
- }
- fclose($file);
- }
- return array_diff($unknown_map, $known_map);
- }
Advertisement
Add Comment
Please, Sign In to add comment