Вывод файлов по дате

Тема в разделе "PHP программирование", создана пользователем Rocklviv, 3 сен 2011.

  1. Rocklviv

    Rocklviv Гость

    Всем привет!
    Собсна, есть скрипт который выводит листинг файлы из директории !
    Код (PHP):
    <?php
    function file_size ($filename) {
    if (!file_exists($filename)) return "file missing";
    $filesize = filesize($filename);

    if($filesize > 1024) {
    $filesize = ($filesize/1024);
    if($filesize > 1024) {
    $filesize = ($filesize/1024);
    if($filesize > 1024) {
    $filesize = ($filesize/1024);
    $filesize = round($filesize, 1);
    return $filesize." ГБ";  
    } else {
    $filesize = round($filesize, 1);
    return $filesize." MБ";   
    }  
    } else {
    $filesize = round($filesize, 1);
    return $filesize." Кб";  
    }          
    } else {
    $filesize = round($filesize, 1);
    return $filesize." байт";  
    }

    }
    foreach (glob("*.dem") as $filename) {
    echo '<tr><td><a href = "'.$filename.'">'.$filename.'</a></td><td>'.file_size($filename).'</td></tr>';
    }

    ?>
    Вот и вопрос, как сделать чтобы он выводил по заданному шаблону имени, чтобы сделать фильтр по дате !
    Это скажем будет календарь и взависимости от указаной даты будет выводит файлы!
    Файлы имеют вот такого рода имена: 2011-08-12-0040-de_inferno.dem

    Заранее благодарен!
     
  2. VadikV

    VadikV Member

    Регистрация:
    10 ноя 2010
    Сообщения:
    17
    Симпатии:
    0
    Можно сначала получить массив имен файлов, отсортировать его, а уже потом выводить ;)
    Код (PHP):
    $files = glob("*.dem");
    sort($files);
    foreach ($files as $filename) {
     
  3. Rocklviv

    Rocklviv Гость

    всё кльово выводит!
    можете глянуть: http://demos.rocknet.pp.ua/
    но вот!
    мне нужно что бы была возможность просмотреть за определённый день все файлы!

    пните, куда копать =)
     
  4. VadikV

    VadikV Member

    Регистрация:
    10 ноя 2010
    Сообщения:
    17
    Симпатии:
    0
    Тогда перед выводом проверяй файл. Можно по имени, т.к. у тебя имя соответствует дате:
    Код (PHP):
    $need_data = '2011-08-15';
    foreach ($files as $filename)
    {
    if (substr($filename, 0, 10) == $need_data)
    echo '<tr><td><a href = "'.$filename.'">'.$filename.'</a></td><td>'.file_size($filename).'</td></tr>';
    либо по проверке даты самого файла:
    Код (PHP):
    $need_data = '2011-08-15';
    foreach ($files as $filename)
    {
    if (date ("Y-m-d", filemtime($filename)) == $need_data)
    echo '<tr><td><a href = "'.$filename.'">'.$filename.'</a></td><td>'.file_size($filename).'</td></tr>';
     
  5. Rocklviv

    Rocklviv Гость

    Vadik!
    Большое спасибо! Всё прекрасно получилось!
    Вот собсна код:
    Код (PHP):
    <?php
    function file_size ($filename) {
    if (!file_exists($filename)) return "file missing";
    $filesize = filesize($filename);

    if($filesize > 1024) {
    $filesize = ($filesize/1024);
    if($filesize > 1024) {
    $filesize = ($filesize/1024);
    if($filesize > 1024) {
    $filesize = ($filesize/1024);
    $filesize = round($filesize, 1);
    return $filesize." ГБ";  
    } else {
    $filesize = round($filesize, 1);
    return $filesize." MБ";   
    }  
    } else {
    $filesize = round($filesize, 1);
    return $filesize." Кб";  
    }
    } else {
    $filesize = round($filesize, 1);
    return $filesize." байт";  
    }

    }
    echo '
    <form action="" method="POST">
    <label>Input date like: 2011-07-11</label>
    <input type = "text" name = "DATE" /> Enter Date <br />
    <input type="submit" name="search" />
    </form>
    '
    ;
    $date = $_POST['DATE'];

    $files = glob('*.dem');
    sort($files);
    echo '<table>';
    foreach ($files as $filename) {
    if (substr($filename, 0, 10) == $date) {
    echo '<tr><td><a href = "'.$filename.'">'.$filename.'</a></td><td>'.file_size($filename).'</td></tr>';
    }  

    }    
    ?>
     
Загрузка...

Поделиться этой страницей