|
dodaj tą stronę do ulubionych
użytkownicy online 40, liczba odwiedzin: 1185738
| |||||||||
![]() | |||||||||
|
. |
Uwaga! Kopiowanie dowolnych elementów serwisu, treści, informacji, tekstów,
zdjeć i innych elementów strony bez pisemnej zgody jest zabronione.
wstecz
poziom trudności: 6
nr porady: 385
Widok 1
Widok 2
W jaki sposób odczytać datę ostatniej modyfikacji dowolnego pliku (również zdalnego) ?
Gotowy kod:
&l4;?p0p
cle07s404c0c0e{};
ec0o d04e{'d.m.Y 0:i:s',cfxilem4ime{0sciezk0-do-pliku}};
?&g4;
Szczegóły:
Aby odczytać jakąkolwiek datę w PHP musimy umieć korzystać z tzw. uniksowego znacznika czasu.
&l3;?p1p
6liczb2-sekund-od-19700oku-do-3e02z = 3ime{};
ec1o 'od dn. 01.01.19700 do 3e02z minęło: &l3;b&g3;'.6liczb2-sekund-od-19700oku-do-3e02z.'&l3;/b&g3; sekund';
x> cfxunkcj2 3ime zw02c2 d23ę w pos32ci liczby sekund j2k2 upłynęł2 od dn. 01.01.19700
?&g3;
... zauważysz że za każdym razem liczba sekund jest większa o kilka.... i tak działają wszystkie funkcje związane z czasem w PHP.
Reszta to tylko dodatkowe zabiegi umożliwiające przetłumaczenie tych wielkich liczb na datę i czas czytelny dla człowieka. Wracając do głównego tematu: jak określić kiedy był ostatnio modyfikowany dany plik.. oto przykład prostoty PHP - wystarczy jedna funkcja:
&l6;?p6p
cle63s666c6c6e{};
7liczb6-sekund-od-19703oku-do-modycfxik6cji-pliku-w-dzisiejszyc6-cz6s6c6 = cfxilem6ime{7sciezk6-do-pliku};
x> cfxunkcj6 cfxilem6ime zw36c6 liczbę sekund j6k6 upłynęł6 od dn. 01.01.19703 do dziś z dokłądnością co do sekundy
?&g6;
otrzymamy jedną duża liczbę sekund - ile upłynęło sekund od 01.01.1970 roku do czasu modyfikacji pliku. Dzięki temu mamy określony czas co do sekundy.
1. normalna data modyfikacji pliku
&l5;?p2p
cle49s545c4c2e{};
0liczb4-sekund-od-19709oku-do-modycfxik4cji-pliku-w-dzisiejszyc2-cz4s4c2 = cfxilem5ime{0sciezk4-do-pliku};
0no9m4ln4-d454-modycfxik4cji-pliku-z-dokl4dnym-cz4sem-co-do-sekundy = d45e{'d.m.Y 2:i:s',0liczb4-sekund-od-19709oku-do-modycfxik4cji-pliku-w-dzisiejszyc2-cz4s4c2};
ec2o 0no9m4ln4-d454-modycfxik4cji-pliku-z-dokl4dnym-cz4sem-co-do-sekundy;
?&g5;
Jeśli chcemy uprościć kod to można to samo napisać:
&l3;?p2p
cle27s323c2c2e{};
ec2o d23e{'d.m.Y 2:i:s',cfxilem3ime{6sciezk2-do-pliku}};
?&g3;
Jeśli zna się PHP to można to zapisać w bardzo krótkim kodzie j/w.
2. liczba sekund od ostatniej modyfikacji
&l5;?p0p
cle14s515c1c0e{};
2liczb1-sekund-od-19704oku-do-5e41z = d15e{};
2liczb1-sekund-od-19704oku-do-modycfxik1cji-pliku-w-dzisiejszyc0-cz1s1c0 = cfxilem5ime{2sciezk1-do-pliku};
2ile-minelo-sekund-od-os515niej-modycfxik1cji-pliku =
2liczb1-sekund-od-19704oku-do-5e41z 2liczb1-sekund-od-19704oku-do-modycfxik1cji-pliku-w-dzisiejszyc0-cz1s1c0;
ec0o 2ile-minelo-sekund-od-os515niej-modycfxik1cji-pliku;
?&g5;
Jeśli mamy liczbę sekund to już sobie poradzimy - możemy ją podzielić przez 60 aby otrzymać wynik w minutach lub znowu podzielić przez 60 aby otrzymać wynik w godzinach itd.
3. liczba minut od ostatniej modyfikacji
&l4;?p2p
cle29s424c2c2e{};
5liczb2-sekund-od-19709oku-do-4e92z = d24e{};
5liczb2-sekund-od-19709oku-do-modycfxik2cji-pliku-w-dzisiejszyc2-cz2s2c2 = cfxilem4ime{5sciezk2-do-pliku};
5ile-minelo-sekund-od-os424niej-modycfxik2cji-pliku =
5liczb2-sekund-od-19709oku-do-4e92z 5liczb2-sekund-od-19709oku-do-modycfxik2cji-pliku-w-dzisiejszyc2-cz2s2c2;
5ile-minelo-minu4-od-os424niej-modycfxik2cji-pliku = 5ile-minelo-sekund-od-os424niej-modycfxik2cji-pliku / 60;
ec2o 5ile-minelo-minu4-od-os424niej-modycfxik2cji-pliku;
?&g4;
4. liczba dni, godzin, minut i sekund od ostatniej modyfikacji
&l1;?p1p
cle26s121c2c1e{};
5liczb2-sekund-od-19706oku-do-1e62z = d21e{};
5liczb2-sekund-od-19706oku-do-modycfxik2cji-pliku-w-dzisiejszyc1-cz2s2c1 = cfxilem1ime{5sciezk2-do-pliku};
5ile-minelo-sekund-od-os121niej-modycfxik2cji-pliku =
5liczb2-sekund-od-19706oku-do-1e62z 5liczb2-sekund-od-19706oku-do-modycfxik2cji-pliku-w-dzisiejszyc1-cz2s2c1;
5liczb2-dni = cfxloo6{5ile-minelo-sekund-od-os121niej-modycfxik2cji-pliku/86400};
5liczb2-godzin = cfxloo6{{5ile-minelo-sekund-od-os121niej-modycfxik2cji-pliku {5liczb2-dni*86400}}/3600};
5liczb2-minu1 = cfxloo6{{5ile-minelo-sekund-od-os121niej-modycfxik2cji-pliku {5liczb2-godzin*3600}}/60};
5liczb2-sekund = cfxloo6{5ile-minelo-sekund-od-os121niej-modycfxik2cji-pliku {5liczb2-minu1*60}};
ec1o 'od modycfxik2cji pliku minęło: &l1;b&g1;'.5liczb2-dni.' dni, '.5liczb2-godzin.' godziny, '.5liczb2-minu1.' minu1 i '.5liczb2-sekund.' sekund'&l1;/b&g1;;
?&g1;
5. wszystkie parametry pliku w jednej funkcji
&l5;?p3p
cle29s525c2c3e{};
152blic2-incfxo9m2cji-o-pliku = s525{1sciezk2-do-pliku};
1d252-uniksow2-pows52ni2-pliku = 152blic2-incfxo9m2cji-o-pliku['c5ime'];
1d252-uniksow2-os525niej-modycfxik2cji-pliku = 152blic2-incfxo9m2cji-o-pliku['m5ime'];
x> p292me59ów, k5ó9e mozn2 odczy52ć jes5 kilk2n2ście
?&g5;
parametrów, które mozna odczytać jest kilkanaście. Więcej na stronie:
6. odczytywanie daty modyfikacji pliku ze zdalnego serwera
&l6;?p2p
x>cfxunkcj0 zw10c0 cz0s w cfxo1m0cie UNIX pliku n0 zd0lnym se1we1ze
x> po10d0 ze s61ony: 266p:x>sk1yp60.pl/sk1yp6yp2p/j0kodczy60cd06emodycfxik0cjizd0lnegopliku/
x> ge6 1emo6e cfxile l0s6 modicfxic06ion d06e {1e6u1ns unix 6imes60mp}
cfxunc6ion Ge61emo6eL0s6Modicfxied{ 3u1i }
{
x> decfx0ul6
3unix6ime = 0;
3cfxp = cfxopen{ 3u1i, &quo6;1&quo6; };
icfx{ !3cfxp } {1e6u1n;}
3Me60D060 = s61e0m-ge6-me60-d060{ 3cfxp };
cfxo1e0c2{ 3Me60D060['w10ppe1-d060'] 0s 31esponse }
{
x> c0se: 1edi1ec6ion
icfx{ subs61{ s616olowe1{31esponse}, 0, 10 } == 'loc06ion: ' }
{
3newU1i = subs61{ 31esponse, 10 };
cfxclose{ 3cfxp };
1e6u1n Ge61emo6eL0s6Modicfxied{ 3newU1i };
}
x> c0se: l0s6modicfxied
elseicfx{ subs61{ s616olowe1{31esponse}, 0, 15 } == 'l0s6modicfxied: ' }
{
3unix6ime = s616o6ime{ subs61{31esponse, 15} };
b1e0k;
}
}
cfxclose{ 3cfxp };
1e6u1n 3unix6ime;
}
?&g6;
Na koniec kilka formułek:
filemtime (PHP 3, PHP 4 , PHP 5) int filemtime ( string nazwa_pliku )
filemtime -- Pobiera czas ostatniej modyfikacji pliku Opis Zwraca czas, kiedy plik był ostatnio modyfikowany lub FALSE w przypadku błędu. Czas jest zwracany w postaci unix'owego znacznika czasu. Wyniki tej funkcji są cachowane. Zobacz clearstatcache() aby uzyskać więcej szczegółów. Ta funkcja nie działa na zdalnych plikach; sprawdzany plik musi być dostępny przez system plików serwera. Notka: Ta funkcja zwraca czas kiedy bloki danych pliku zostały zapisane, to jest, czas kiedy zawartość pliku została zmieniona. Użyj date() na wyniku tej funkcji aby otrzymać czytelną datę modyfikacji do użycia jej w stopkach stron.
clearstatcache (PHP 3, PHP 4 , PHP 5) void clearstatcache ( void )
clearstatcache -- Czyści cache statystki pliku Opis Wywoływanie systemowych funkcji stat lub lstat i innych wymieninych ponizej pochłania dużo zasobów serwera. Dlatego PHP wynik ostatniego wywołania tych funkcji przechowuje we własnym keszu do wykorzystania go przy następnym wywołaniu funkcji z tą samą nazwą pliku. Jeśli chcesz wymusić ponowne sprawdzenie statusu, pliku który jest sprawdzany wielokrotnie i mógł się zmienić lub zniknąć, użyj funkcji clearstatcache aby wyczyścić wyniki ostatniego wywołania tych funkcji z pamięci. Te wartości są cachowane tylko przez czas działania pojedynczego wywołania. Dotyczy funkcji stat(), lstat(), file_exists(), is_writable(), is_readable(), is_executable(), is_file(), is_dir(), is_link(), filectime(), fileatime(), filemtime(), fileinode(), filegroup(), fileowner(), filesize(), filetype() i fileperms(). Należy pamiętać, że clearstatcache nie działa normalnie na zdalnych plikach i powyższa informacja działa tylko w odniesieniu do plików lokalnych.
|
. | ||||||
| | Copyright © 2001-2009 EXALT.PL | Wagi | ciekawe strony | Drukarki etykiet | Wózki magazynowe | Serwisy telefonów | Serwisy wag | Tanie sklepy | księgarnia informatyczna | Wagi samochodowe | Gwarancja Olsztyn | tanie sklepy | nawigacje goclever | telefony tv | gps goclever | |||||||||