[ Nemanja Avramović @ 01.02.2005. 11:37 ] @
Pravim skriptu koja ce da pokupi datume zadnjih izmena svih fajlova na sajtu i da prikaze kad je poslednji izmenjen (dakle, tada je i sajt izmenjen)...

Code:

<?php
 
$trenutni = 0;
$najveci = 0;


function Read_Dir($Dir) {
    $Temp = opendir($Dir);
    while (false !== ($File = readdir($Temp))) {
        if (($File != ".") && ($File != "..")) {
            if (is_dir($Dir."/".$File)) {
                Read_Dir($Dir."/".$File);
            }
            if (is_file($Dir."/".$File)) {
                $trenutni = filemtime("$Dir/$File");
        if (($najveci - $trenutni) > 0) { $najveci = $trenutni; } //provera
        echo "$Dir/$File = $trenutni <br>"; //test, izbrisati
            }
        }
    }
}
Read_Dir("./");

echo $najveci . '<br>'; //test
echo date("d.m.Y",$najveci);


?> 


naravno, tu postoje i sajtovi koji koriste flat file sistem (txt) za upis podataka, tako da bi dosta njih bilo update-ovano svakog dana (sto je u sustini istina), ali kasnije cu razmisljati o exclude-ovanju nekih direktorijuma......

konkretno pitanje je zasto mi na kraju skripte $najveci bude 0 kad ne treba tako?
[ Jbyn4e @ 01.02.2005. 12:18 ] @
Verovatno zato sto ti je $najveci lokalna promenljiva u funkciji, koju ne vracas niti je stavljas da je globalna, pa kad izadje iz funkcije ona ima staru vrednost... sto je nula u tvom slucaju.
[ Nemanja Avramović @ 01.02.2005. 13:26 ] @
evo novog koda, ali sad sam se pogubio, tako da molim za konkretnu pomoc (dakle, kod):
Code:

<?php
function Read_Dir($Dir) {
$trenutni = 0;
$najveci = 0;
    $Temp = opendir($Dir);
    while (false !== ($File = readdir($Temp))) {
        if (($File != ".") && ($File != "..")) {
            if (is_dir($Dir."/".$File)) {
                Read_Dir($Dir."/".$File);
            }
            if (is_file($Dir."/".$File)) {
                $trenutni = filemtime("$Dir/$File");
        if (($najveci - $trenutni) > 0) { $najveci = $trenutni; }
        echo "$Dir/$File = $trenutni <br>";
            }
        }
    }
return $najveci;
}
$broj = Read_Dir("./");

echo $broj . '<br>';
echo date("d.m.Y",$broj);
?> 
[ Nemanja Avramović @ 01.02.2005. 13:37 ] @
izgleda da je ovde bila greska jer mi sad vraca datum :)
Code:

if (($najveci - $trenutni) > 0) { $najveci = $trenutni; } 


a trebalo je:
Code:

if (($najveci - $trenutni) < 0) { $najveci = $trenutni; } 


mrzelo me da razmisljam, i sad ne vidim logiku (mada kad bih samo malo razmislio, video bih je)......
[ Jbyn4e @ 01.02.2005. 13:39 ] @
Citat:
JaHvram: evo novog koda, ali sad sam se pogubio, tako da molim za konkretnu pomoc (dakle, kod):

Pa "odgubi" se ;). I sto uopste koristis funkciju ako ne moras? Onda ne bi morao da definises promenljive globalne i ostalo..

Citat:

$trenutni = filemtime("$Dir/$File");
if (($najveci - $trenutni) > 0) { $najveci = $trenutni; }

Ovo ti ne valja vec kod prvog a i svih ostalih citanja velicine fajla. Bilo koliki fajl da je, on je veci od 0, pa je $najveci (inicijalno 0) -$trenutni UVEK manje od nula, tako da se uslov nikad ne izvrsava...

Probaj pa vidi sta ti se desava.. A usput i stavi echo-e u linije pa vidi gde se sta desava...
[ Nemanja Avramović @ 01.02.2005. 14:57 ] @
ama vidis da radi... tj. sutra ce da se vidi da li radi :) www.superstojadin.co.sr <- tu sam vec ubacio tako da... cekajmo...
[ Jbyn4e @ 02.02.2005. 08:26 ] @
Obrati si paznju ;) da je razmak izmedju ove dve poruke 2 minuta - tako da sam ja pisao odgovor dok si ti pisao da ti radi i da si nasao gresku....
[ Nemanja Avramović @ 02.02.2005. 10:04 ] @
ok, no problemo