Example #1
0
 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);
     }
 }