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

  • Автор темы Rocklviv
  • Дата начала
R

Rocklviv

Гость
#1
Всем привет!
Собсна, есть скрипт который выводит листинг файлы из директории !
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

Заранее благодарен!
 
10.11.2010
17
0
#2
Можно сначала получить массив имен файлов, отсортировать его, а уже потом выводить ;)
PHP:
$files = glob("*.dem");
sort($files);
foreach ($files as $filename) {
 
R

Rocklviv

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

пните, куда копать =)
 
10.11.2010
17
0
#4
Тогда перед выводом проверяй файл. Можно по имени, т.к. у тебя имя соответствует дате:
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>';
 
R

Rocklviv

Гость
#5
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>';
}  

}	  
?>