Собсна, есть скрипт который выводит листинг файлы из директории !
<?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
Заранее благодарен!
Спустя 40 минут, 49 секунд (13.08.2011 - 10:43) Invis1ble написал(а):
заюзать preg_match()
Спустя 1 час, 14 минут, 25 секунд (13.08.2011 - 11:57) Russia написал(а):
если нужно сравнивать только с датой то возьми первые 10 символов функцией substr и сравнивай с нужной датой.
Спустя 2 дня, 1 час, 45 минут, 38 секунд (15.08.2011 - 13:43) Rocklviv написал(а):
Вот припустим:
Выводит: 2011-08-12! Гуд!
А вот как вывести все файлы с датой: 2011-08-12!
как сделать сравнение полученого $get, с полным именем файла?
пните, куда копать! :D
$get = substr($filename, 0, 10);
Выводит: 2011-08-12! Гуд!
А вот как вывести все файлы с датой: 2011-08-12!
как сделать сравнение полученого $get, с полным именем файла?
пните, куда копать! :D
Спустя 22 минуты, 19 секунд (15.08.2011 - 14:05) Invis1ble написал(а):
glob('2011-08-12_*.dem');
Спустя 7 часов, 30 минут, 25 секунд (15.08.2011 - 21:35) Rocklviv написал(а):
echo '<select><option value="'.glob('$get*.dem').'">'.glob('$get*.dem').'</option></select>';
можете подсказать, почему этот вариант не срабатывает?
этот вариант просто выводит <select box>с Array!
Спустя 4 минуты, 35 секунд (15.08.2011 - 21:40) Invis1ble написал(а):
1. Потому что glob() возвращает массив
2. Переменные в одинарных кавычках не интерпретируются
2. Переменные в одинарных кавычках не интерпретируются
Спустя 19 дней, 19 часов, 18 минут, 32 секунды (5.09.2011 - 16:59) Rocklviv написал(а):
Вопрос решен!!
Собсна, вот и решение:
З.Ы. Если есть какието замечания, с радостью выслушаю!
Собсна, вот и решение:
<?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>';
}
}
?>
З.Ы. Если есть какието замечания, с радостью выслушаю!
Спустя 5 минут, 55 секунд (5.09.2011 - 17:05) Invis1ble написал(а):
Rocklviv
на 99.9% уверен, что твоя ф-ция некорректно определяет размер файлов
на 99.9% уверен, что твоя ф-ция некорректно определяет размер файлов
Спустя 11 минут, 31 секунда (5.09.2011 - 17:16) Rocklviv написал(а):
функция filesize - возвращает размеры в байтах! правильно?
собсна, от чего я и отталкивался!
получил размер - сверил с файлом! если больше 1024 байт идём дальше, и так до Гб!
Для проверки: http://demos.rocknet.pp.ua/
собсна, от чего я и отталкивался!
получил размер - сверил с файлом! если больше 1024 байт идём дальше, и так до Гб!
Для проверки: http://demos.rocknet.pp.ua/
Спустя 12 минут, 51 секунда (5.09.2011 - 17:29) Invis1ble написал(а):
Rocklviv
Цитата |
получил размер - сверил с файлом! если больше 1024 байт идём дальше, и так до Гб! |
я не об этом, а о кешировании результатов filesize()
Спустя 3 минуты, 43 секунды (5.09.2011 - 17:33) Rocklviv написал(а):
Цитата (Invis1ble @ 5.09.2011 - 14:29) | ||
Rocklviv
я не об этом, а о кешировании результатов filesize() |
а можно об этом подробнее?
З.Ы.
А если я в конце своей функции добавлю clearstatcache(); это исправит ситуацию ?
Спустя 30 минут, 58 секунд (5.09.2011 - 18:04) Invis1ble написал(а):
Rocklviv
если у тебя размер файлов не изменяется, то все нормально будет работать, но если нет - ф-ция будет работать неправильно
если у тебя размер файлов не изменяется, то все нормально будет работать, но если нет - ф-ция будет работать неправильно
Цитата |
А если я в конце своей функции добавлю clearstatcache(); это исправит ситуацию ? |
да