Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: operacje na plikach w 1 folderze
Forum PHP.pl > Forum > Gotowe rozwiązania > Szukam
edgar5
Witam


Poszukuję skryptu php (w bash wiem mniej wiecej jak to zrobic, ale to malo uniwersalne rozwiazanie), które:

1. na podstawie zadanego przez uzytkownika zakresu dat i czasu (poprzez formularz) wyszuka pliki z zakresu podanego przez uzytkownika i wyswietli ich nazwy. Pliki to jpeg , ktore maja nastepujace nazwy:
np. 2010-02-17_01:34.jpg
a wiec skrypt albo szuka plikow na podstawie wlasciwosci plkow (czas utworzenia w unixie) lub na podstawie ich nazw wyzej pokazanych

proszę o pomoc jak cos takiego zrobic.

i jeszcze jedno, jka skryptem php wyswietlic plik z 1 folderu o najstarszej dacie utworzenia i najmlodszej?
acha pliki w powyzszym pytaniu to pliki z zakresu zwykle 48 godzin i znajduja sie w 1 folderze: fotki

ps. na stronie manuala php jest dyskusja o wykorzystaniu funkcji filemtime, ale nigdzie nie moge znalezc funkcji wyswietlajacej pliki z zakresu a-b
karolrynio
http://php.net/manual/en/function.opendir.php

musisz otwórz katalog, pobierz listę plików i sprawdzaj czasy utworzenia każdego...
edgar5
no dobrze ale co porównywać?
mozna porównac daty? tz: filemtime(file1) > filemtime(file2) ?
karolrynio
Odpowiedz sobie na pytanie czy chcesz porównywać daty utworzenia plików, czy daty zapisane w nazwach plików... Bo nie potrafię do końca zrozumieć Twojego pierwszego posta...
edgar5
obojetnie, tylko ze przetrawienie daty z nazwy pliku i sposób porównania wieksza/mniejsza nie jest do konca mi zrozumiały
jesli skrypt potrafilby czytac date a nastepnie przekonwertowal ja do formatu serowanego np przez funkcje time() - ilosc sekund od poczatku unixa to jest to zrozumiale, ale date w postaci: 2010-02-21_20:50 porównac z data podobna? nie do konca wiem jak to zrobic....
karolrynio
jesli masz wszystkie daty w postaci:
2010-02-21_20:50
i to są nazwy plików to wystarczy, że użyjesz
  1. $aa = explode('_', $nazwa_pliku_bez_rozszerzenia);
  2. $data = strtotime(implode(' ', $aa));

i w data masz ilość sekund która cię interesuje.
edgar5
Kod
<?
$directory="fotki";



$dir=opendir($directory);
$file_list="<UL>";
while($file_name=readdir($dir))
{

if(($file_name!=".")&&($file_name!="..")){
$file_name_cut=substr($file_name, 0, -4);
$aa=explode('_', $file_name_cut);
$czas=strtotime(implode('', $aa));


// $file_url=rawurlencode($file_name);
$file_list.=$czas;

}

}
$file_list.="</UL>";
closedir($dir);
echo $file_list;
?>


tylko mam jeszcze pytania:
1. jak ustawic wyswietlone czasy powstania plikow w porzadku chronologicznym?
2. jak odczytac z katalogu plik najstarszy i najmlodszy?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.