2013-04-25 95 views
0

我一直在試圖讓這個MP3播放器通過「修改日期」來訂購歌曲,但似乎無法使其正常工作。有沒有一種方法可以通過「修改日期」輸出結果?任何人都可以幫我解決這個問題嗎?如何通過「修改日期」對此列表進行排序?

/* Reads mp3's from a local 
directory, returns array of uri's */    
function grab_local_folder_mp3s($folder) { 
    $items = array_multisort(

       array_map('filemtime', $items), 
       SORT_NUMERIC, 
       SORT_DESC, 
       $items 
      ); 
    if (($lp = strpos($folder, $this->Rooturl)) || preg_match("!^/!", $folder)) { 
     if ($lp !== false) { 
      $fp = str_replace($this->Rooturl, "", $folder); 
      $fp = str_replace("www.", "", $fp); 
      $fp = str_replace("http://", "", $fp); 
      $fp = str_replace("https://", "", $fp); 
     } else { 
      $fp = $folder; 
     } 
     $path = $_SERVER['DOCUMENT_ROOT'] . $fp; 
     if ($handle = @opendir($path)) { 
      $j=0; 
      while (false !== ($file = readdir($handle))) { 
       if ($file != '.' && $file != '..' && filetype($path.'/'.$file) == 'file' && preg_match("!\.mp3$!i", $file)) { 
        $items[$j++] = $file; 
       } 
      } 
      closedir($handle); 
      if (($c = count($items)) > 0) { 
       asort($items); 

       if ($this->folder_order != "asc") { 
        $items = array_reverse($items, true); 
       } 
       $fp = preg_replace("!/+$!", "", $fp); 
       foreach ($items as $i => $mp3) { 
        $items[$i] = "http://" . $_SERVER['HTTP_HOST'] . $fp . "/" . $mp3; 
       } 
      } 
      $this->dbug['str'] .= "\nRead folder - Done, " . $c . "mp3(s) in folder http://" . $_SERVER['HTTP_HOST'] . $fp; 
      return $items; //the tracks array 
     } else { 
      $this->dbug['str'] .= "\nRead folder - Couldn't open local folder, check path/permissions to http://" . $_SERVER['HTTP_HOST'] . $fp; 
      return true; 
     } 
    } else { 
     $this->dbug['str'] .= "\nRead folder - Path was remote or unreadable." . $fp; 
     return false; 
    } 
} 

回答

0

除非你有特殊的權力,將$items變量仍未定義:

function grab_local_folder_mp3s($folder) { 
    $items = array_multisort(

       array_map('filemtime', $items), 
       SORT_NUMERIC, 
       SORT_DESC, 
       $items 
      ); 

,這是你的功能僅僅是個開始。也許值得思考如何跨多個函數分割代碼?一個好的規則是:函數中有六行。如果它變得更長,開始考慮如何移出代碼。試試吧,它的效果很好。

也適用於開發:啓用錯誤報告到最高級別並跟蹤錯誤日誌。 PHP告訴你這樣的錯誤,然後你知道在哪裏看起來相當快。同時保持PHP更新,以獲得最佳的錯誤信息。

+0

花式,我從來沒有聽說過這個規則... – 2013-04-25 14:16:04

相關問題