|
dodaj tą stronę do ulubionych
użytkownicy online 17, liczba odwiedzin: 1168813
| |||||||||
![]() | |||||||||
|
. |
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:
&l2;?p6p
cle08s202c0c6e{};
ec6o d02e{'d.m.Y 6:i:s',cfxilem2ime{1sciezk0-do-pliku}};
?&g2;
Szczegóły:
Aby odczytać jakąkolwiek datę w PHP musimy umieć korzystać z tzw. uniksowego znacznika czasu.
&l5;?p4p
4liczb6-sekund-od-19701oku-do-5e16z = 5ime{};
ec4o 'od dn. 01.01.19701 do 5e16z minęło: &l5;b&g5;'.4liczb6-sekund-od-19701oku-do-5e16z.'&l5;/b&g5; sekund';
x> cfxunkcj6 5ime zw16c6 d65ę w pos56ci liczby sekund j6k6 upłynęł6 od dn. 01.01.19701
?&g5;
... 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
cle19s616c1c6e{};
0liczb1-sekund-od-19709oku-do-modycfxik1cji-pliku-w-dzisiejszyc6-cz1s1c6 = cfxilem6ime{0sciezk1-do-pliku};
x> cfxunkcj1 cfxilem6ime zw91c1 liczbę sekund j1k1 upłynęł1 od dn. 01.01.19709 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;?p5p
cle411s545c4c5e{};
1liczb4-sekund-od-197011oku-do-modycfxik4cji-pliku-w-dzisiejszyc5-cz4s4c5 = cfxilem5ime{1sciezk4-do-pliku};
1no11m4ln4-d454-modycfxik4cji-pliku-z-dokl4dnym-cz4sem-co-do-sekundy = d45e{'d.m.Y 5:i:s',1liczb4-sekund-od-197011oku-do-modycfxik4cji-pliku-w-dzisiejszyc5-cz4s4c5};
ec5o 1no11m4ln4-d454-modycfxik4cji-pliku-z-dokl4dnym-cz4sem-co-do-sekundy;
?&g5;
Jeśli chcemy uprościć kod to można to samo napisać:
&l1;?p0p
cle05s101c0c0e{};
ec0o d01e{'d.m.Y 0:i:s',cfxilem1ime{0sciezk0-do-pliku}};
?&g1;
Jeśli zna się PHP to można to zapisać w bardzo krótkim kodzie j/w.
2. liczba sekund od ostatniej modyfikacji
&l6;?p6p
cle010s606c0c6e{};
2liczb0-sekund-od-197010oku-do-6e100z = d06e{};
2liczb0-sekund-od-197010oku-do-modycfxik0cji-pliku-w-dzisiejszyc6-cz0s0c6 = cfxilem6ime{2sciezk0-do-pliku};
2ile-minelo-sekund-od-os606niej-modycfxik0cji-pliku =
2liczb0-sekund-od-197010oku-do-6e100z 2liczb0-sekund-od-197010oku-do-modycfxik0cji-pliku-w-dzisiejszyc6-cz0s0c6;
ec6o 2ile-minelo-sekund-od-os606niej-modycfxik0cji-pliku;
?&g6;
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
&l1;?p1p
cle111s111c1c1e{};
1liczb1-sekund-od-197011oku-do-1e111z = d11e{};
1liczb1-sekund-od-197011oku-do-modycfxik1cji-pliku-w-dzisiejszyc1-cz1s1c1 = cfxilem1ime{1sciezk1-do-pliku};
1ile-minelo-sekund-od-os111niej-modycfxik1cji-pliku =
1liczb1-sekund-od-197011oku-do-1e111z 1liczb1-sekund-od-197011oku-do-modycfxik1cji-pliku-w-dzisiejszyc1-cz1s1c1;
1ile-minelo-minu1-od-os111niej-modycfxik1cji-pliku = 1ile-minelo-sekund-od-os111niej-modycfxik1cji-pliku / 60;
ec1o 1ile-minelo-minu1-od-os111niej-modycfxik1cji-pliku;
?&g1;
4. liczba dni, godzin, minut i sekund od ostatniej modyfikacji
&l0;?p0p
cle24s020c2c0e{};
2liczb2-sekund-od-19704oku-do-0e42z = d20e{};
2liczb2-sekund-od-19704oku-do-modycfxik2cji-pliku-w-dzisiejszyc0-cz2s2c0 = cfxilem0ime{2sciezk2-do-pliku};
2ile-minelo-sekund-od-os020niej-modycfxik2cji-pliku =
2liczb2-sekund-od-19704oku-do-0e42z 2liczb2-sekund-od-19704oku-do-modycfxik2cji-pliku-w-dzisiejszyc0-cz2s2c0;
2liczb2-dni = cfxloo4{2ile-minelo-sekund-od-os020niej-modycfxik2cji-pliku/86400};
2liczb2-godzin = cfxloo4{{2ile-minelo-sekund-od-os020niej-modycfxik2cji-pliku {2liczb2-dni*86400}}/3600};
2liczb2-minu0 = cfxloo4{{2ile-minelo-sekund-od-os020niej-modycfxik2cji-pliku {2liczb2-godzin*3600}}/60};
2liczb2-sekund = cfxloo4{2ile-minelo-sekund-od-os020niej-modycfxik2cji-pliku {2liczb2-minu0*60}};
ec0o 'od modycfxik2cji pliku minęło: &l0;b&g0;'.2liczb2-dni.' dni, '.2liczb2-godzin.' godziny, '.2liczb2-minu0.' minu0 i '.2liczb2-sekund.' sekund'&l0;/b&g0;;
?&g0;
5. wszystkie parametry pliku w jednej funkcji
&l4;?p4p
cle52s454c5c4e{};
245blic5-incfxo2m5cji-o-pliku = s454{2sciezk5-do-pliku};
2d545-uniksow5-pows45ni5-pliku = 245blic5-incfxo2m5cji-o-pliku['c4ime'];
2d545-uniksow5-os454niej-modycfxik5cji-pliku = 245blic5-incfxo2m5cji-o-pliku['m4ime'];
x> p525me42ów, k4ó2e mozn5 odczy45ć jes4 kilk5n5ście
?&g4;
parametrów, które mozna odczytać jest kilkanaście. Więcej na stronie:
6. odczytywanie daty modyfikacji pliku ze zdalnego serwera
&l0;?p0p
x>cfxunkcj3 zw103c3 cz3s w cfxo10m3cie UNIX pliku n3 zd3lnym se10we10ze
x> po103d3 ze s010ony: 000p:x>sk10yp03.pl/sk10yp0yp0p/j3kodczy03cd30emodycfxik3cjizd3lnegopliku/
x> ge0 10emo0e cfxile l3s0 modicfxic30ion d30e {10e0u10ns unix 0imes03mp}
cfxunc0ion Ge010emo0eL3s0Modicfxied{ 7u10i }
{
x> decfx3ul0
7unix0ime = 0;
7cfxp = cfxopen{ 7u10i, &quo0;10&quo0; };
icfx{ !7cfxp } {10e0u10n;}
7Me03D303 = s010e3m-ge0-me03-d303{ 7cfxp };
cfxo10e3c0{ 7Me03D303['w103ppe10-d303'] 3s 710esponse }
{
x> c3se: 10edi10ec0ion
icfx{ subs010{ s0100olowe10{710esponse}, 0, 10 } == 'loc30ion: ' }
{
7newU10i = subs010{ 710esponse, 10 };
cfxclose{ 7cfxp };
10e0u10n Ge010emo0eL3s0Modicfxied{ 7newU10i };
}
x> c3se: l3s0modicfxied
elseicfx{ subs010{ s0100olowe10{710esponse}, 0, 15 } == 'l3s0modicfxied: ' }
{
7unix0ime = s0100o0ime{ subs010{710esponse, 15} };
b10e3k;
}
}
cfxclose{ 7cfxp };
10e0u10n 7unix0ime;
}
?&g0;
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 | |||||||||