PHP按日期排序功能(JWPLAYER自动播放列表脚本)

时间:2012-05-25 09:24:45

标签: php jwplayer

这将帮助JWPLAYER的任何人通过扫描文件夹并自动创建正确的XML文件来制作播放列表。

我想添加一个我无法解决的功能。

我想按名称或日期订购播放列表。

 $folder = opendir($path);
$start="<asx version='3.0'>n<title>Example ASX playlist</title>";
$Fnm = "./playlist.xml";
$inF = fopen($Fnm,"w");
fwrite($inF,$start."n");
while( $file = readdir($folder) ) {
     if (($file != '.')&&($file != '..')&&($file != 'index.htm')){
     $result="<entry>n<title>$file</title>n<ref href='$path2$file'/>n<param name='image' value='preview.jpg'/>n</entry>n";
         fwrite($inF,$result);
     }
}
fwrite($inF,"</asx>");
closedir($folder);
fclose($inF);
?>

问题:

我想在创建XML和列表之前按日期向上面的代码添加一个sort函数。

由于

2 个答案:

答案 0 :(得分:1)

你必须循环目录并使用filemtime获取日期并将其转储到数组中,这是一个工作脚本,你可以改变$ path,$ xmlfile或arsort()来sort()去除你的需求...

<?php

$xmlfile = "playlist.xml";
$path = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['SCRIPT_NAME']). "/musicfolder";
$folder = scandir($path);
$files = array();
foreach($folder as $file){
    if($file == '.' OR $file == '..' OR $file == 'index.htm'){}else{
        $files[$file] = filemtime($path.'/'.$file);
    }
}
arsort($files);

//use asort to sort from old to new

$output="<asx version='3.0'>" . PHP_EOL . "<title>Example ASX playlist</title>";
foreach($files as $file => $date){
$output .= "<entry>" . PHP_EOL . "<title>$file</title>" . PHP_EOL . "<ref href='$path'/>" . PHP_EOL . "<param name='image' value='preview.jpg'/>" . PHP_EOL . "</entry>" . PHP_EOL;
}
$output .= "</asx>";
file_put_contents($xmlfile,$output);
?>

答案 1 :(得分:0)

创建一个包含文件名称,日期时间(使用filemtime($ file))等的数组,并进行相应的排序。