function removeDeadFiles($folder = false, $recursive = true) { $root = new jzMediaNode(); $recursive_repeat = false; if ($folder !== false) { $fbase = "REG-" . pathize($folder); } else { $fbase = "REG"; } $handle = opendir($this->data_dir); while ($file = readdir($handle)) { $fullpath = $this->data_dir . '/' . $file; if (false !== stristr($file, $fbase)) { if ($recursive || $file == $fbase) { $modified = false; $arr = unserialize(file_get_contents($fullpath)); foreach ($arr as $f => $info) { if ($info['fs_sync'] == "true" && !file_exists($f)) { $modified = true; unset($arr[$f]); if ($info['type'] == "track") { $root->removeMedia(new jzMediaTrack($info['path'])); } else { $root->removeMedia(new jzMediaNode($info['path'])); $recursive_repeat = true; } } } if ($modified) { if (sizeof($arr) == 0) { unlink($fullpath); } else { $handle2 = fopen($fullpath, "w"); fwrite($handle2, serialize($arr)); fclose($handle2); } } } } } if ($recursive_repeat) { $this->removeDeadFiles($folder, true); } }