|
|
|
| Здравствуйте.
Сделал небольшой скрипт музыки для ЖЖ.http://audio.yan.kiev.ua/
<?php
print "<head></head><TABLE BORDER=\"1\" CELLPADDING=\"0\" CELLSPACING=\"0\" WIDTH=\"800px\"><TH>Песня</TH><TH>Прослушать</TH><TH>Код для ЖЖ</TH>\n";
if ($handle = opendir('../audio/')){
while (false !==($file = readdir($handle))){
if ($file !='.'&& $file !='..'&& $file !='player.swf'&& $file !='index.php'&& $file !='upload'){
echo "<TR><TD><a href='$file'><b>$file</b></a></TD><TD width=\"20\">
</TD></TR>";
}
}
closedir($handle);
}
print "\n</TABLE>\n";
?>
|
Очень хотелось бы, чтобы в нём была сортировка по дате. Насколько я знаю, за это отвечает foreach. Но как его правильно встроить?
Второй вопрос, а "листалку" и разбивку на страницы - сделать сложно для такого скрипта?
Заранее огромное спасибо. | |
|
|
|
|
|
|
|
для: YAN
(30.12.2010 в 16:45)
| | нет, foreach за это не отвечает, он просто перебирает массив.
я бы для начала создал и заполнил многомерный массив с именами файлов и их последним обновлением (функция filemtime), потом бы отсортировал его по полю со значением fimemtime и вывел бы с помощью foreach. справитесь? | |
|
|
|
|
|
|
|
для: psychomc
(30.12.2010 в 17:37)
| | К сожалению, нет.
Теоретически понятно. Но фактически....
Если не сложно...
Буду очень благодарен ) | |
|
|
|
|
|
|
|
для: YAN
(30.12.2010 в 17:45)
| | если никто не напишет, то сделаю вечером. сейчас под рукой нету необходимых инструментов. если буду писать не проверяя могу накосячить... | |
|
|
|
|
|
|
|
для: YAN
(30.12.2010 в 16:45)
| | В этой папке нет вложенных папок? | |
|
|
|
|
|
|
|
для: sim5
(30.12.2010 в 19:34)
| | Есть. Но они скрыты. (см 4ю строку кода) | |
|
|
|
|
|
|
|
для: yan
(30.12.2010 в 20:39)
| | Значит получайте массив файлов по маске, затем формируйте массив со всеми полезными данными о файлах дабы в дальнейшем иметь возможность сортировать по выбору:
<?
$mask = "{mp3,wma}"; //маска всевозможных звуковых файлов в данной папке
$m = glob("audio/*.".$mask, GLOB_BRACE); //полученный массив
$m = array_map(null,array_map('basename',$m), array_map('filemtime',$m), array_map('filesize',$m)); //массив параметров
echo "<pre>";
print_r($m);
|
| |
|
|
|
|
|
|
|
для: sim5
(31.12.2010 в 05:54)
| | м-да уж...втыкаю...весьма печально, что я не знал о функции glob | |
|
|
|
|
|
|
|
для: sim5
(31.12.2010 в 05:54)
| | Спасибо большое! Отличный вариант! | |
|
|
|
|
|
|
|
для: YAN
(30.12.2010 в 16:45)
| | готово
<?php
if ($handle = opendir('../audio/')) {
// подходящие нам файлы
$files = array();
// то что не будем трогать
$ignore = array(".", "..", 'player.swf', 'index.php', 'upload');
$i = 0;
while (false !==($file = readdir($handle))) {
if (!in_array($file, $ignore)) {
$files[$i]["fmt"] = filemtime('../audio/'.$file);
$files[$i]["file"] = $file;
$i ++;
}
}
if (!empty($files)) {
// сортируем
usort($files, create_function('$a,$b', 'return $a["fmt"] > $b["fmt"];'));
// ваш вывод
// он довольно кривой, но я его не трогал (почти)
print "<head></head><TABLE BORDER=\"1\" CELLPADDING=\"0\" CELLSPACING=\"0\" WIDTH=\"800px\"><TH>Песня</TH><TH>Прослушать</TH><TH>Код для ЖЖ</TH>\n";
foreach ($files as $file) {
echo '<TR><TD><a href="'.$file["file"].'"><b>'.$file["file"].'</b></a></TD><TD width=\"20\"> </TD></TR>';
}
print "\n</TABLE>\n";
}
closedir($handle);
}
?>
|
может быть не идеальное решение, но должно работать так как вам надо. на большее не было времени | |
|
|
|
|
|
|
|
для: psychomc
(30.12.2010 в 21:39)
| | Опаа! Сейчас проверю! Спасибо большое!!! | |
|
|
|
|
|
|
|
для: psychomc
(30.12.2010 в 21:39)
| | Здесь был мой коммент. | |
|
|
|