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;
    }
}
4

1 回答 1

0

除非你有特殊的权力,否则$items变量保持未定义:

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

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

这只是你的功能的开始。也许值得考虑如何将代码拆分为多个函数?一个好的说法是:一个函数中有六行。如果它变得更长,请开始考虑如何将代码移出它。试试看,效果很好。

也适用于开发:启用最高级别的错误报告并跟踪错误日志。PHP 会告诉您此类错误,然后您就知道在哪里查找非常快。还要保持 PHP 更新以获得可用的最佳错误消息。

于 2013-04-25T14:10:40.250 回答