2013-04-08 60 views
0

我有我在我的wordpress網站上運行的下面的代碼(函數的一部分)。 它工作正常,但它也爲每個文件創建一個系統文件(以'。'開頭)。 這通常不會成爲問題,但我的HTML5音頻播放器選擇了這些文件,顯然無法播放它們,因此看起來播放器已損壞。PHP解壓函數創建隱藏的系統文件

有沒有辦法停止從Zip的這些文件的創建?或者我將不得不停止從玩家一方?

我寧願阻止他們被創造,因爲他們佔用空間。

的代碼是:

// Unzip files to temp unzip folder, ignoring anything that is not a .mp3 extension 
    $zip = new ZipArchive(); 
    $filename = $zip_file_path; 

    if ($zip->open($filename)!==TRUE) { 
     exit("cannot open <$filename>\n"); 
    } 

    for ($i=0; $i<$zip->numFiles;$i++) { 
     $info = $zip->statIndex($i); 
     $file = pathinfo($info['name']); 
     if(strtolower($file['extension']) == "mp3") { 
      file_put_contents($temp_unzip_path.'/'.basename($info['name']), $zip->getFromIndex($i)); 
     } else { 
     $zip->deleteIndex($i); 
     } 
    } 
    $zip->close(); 
+0

什麼是文件名?他們是.DS_Store文件嗎?你用什麼來創建zip文件? – 2013-04-08 19:23:09

回答

1

爲什麼不通過檢查文件名的第一個字符不是一段添加到你的MP3條件?

 if(strtolower($file['extension']) == "mp3" && $info['name'][0] != '.') { 
+0

系統文件尚未在Zip文件中......它們是由解壓縮過程創建的 - 我相信它們是unix系統文件。 我想我可以在我的整體PHP函數中添加幾行,在解壓縮後刪除這些文件,但想知道是否有更好的方法來做到這一點。 – 2013-04-09 19:23:54