Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako izbrojiti fajlove u nekom folderu???

[es] :: PHP :: Kako izbrojiti fajlove u nekom folderu???

[ Pregleda: 1143 | Odgovora: 11 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

LaMpiR
Srđan Vuković
Banja Luka

Član broj: 9930
Poruke: 1334
*.teleklik.net

ICQ: 442475022
Sajt: www.yumirc.org


Profil

icon Kako izbrojiti fajlove u nekom folderu???04.03.2004. u 17:48

DA li je moguce da skripta prebroji fajlove u folderu na hostu npr ako je folder scripts da prebroji koliko skripti ima u tom folderu i da ispise npr Script in Archive: 57 itd...?
04.03.2004. u 17:48 

NikolaVeber
neradnik na porodiljskom bolovanju
Karlsruhe

Član broj: 5115
Poruke: 1249
*.rz.uni-karlsruhe.de

Jabber: nikolaveber@jabber.org
ICQ: 121532865


Profil

icon Re: Kako izbrojiti fajlove u nekom folderu???04.03.2004. u 18:07
Code:

$directory = opendir("./");
  while( $file = readdir( $directory ) ){
  $file_array[] = $file;
}
echo "Broj fajlova u direktorijumu: ".count($file_array);


To bi trebalo da radi. Ne znam da li ima neka bolja metoda za isto.
blog.sun.com/srbija
Java User Group Karlsruhe
Studiranje u Nemačkoj

Officer, I saw the driver who hit me - his name was Johnny Walker.
04.03.2004. u 18:07 

_owl_
Centar - BG

Član broj: 318
Poruke: 989
*.vdial.verat.net

Sajt: home.drenik.net/~owl


Profil

icon Re: Kako izbrojiti fajlove u nekom folderu???04.03.2004. u 20:30
U kodu koji si dao postoji vise greska koje uzrokuju
prijavljivanje pogresnog broja fajlova u direktorijumu.
Ne bi bilo lose da se pogleda www.php.net/readdir
Ukratko readdir vraca sve fajlove i direktorijume koji se
nalaze u trazenom direktorijumu ukljucujuci . i ..
Testiranje povratne vrednosti readdir bi trebao da vrsis
na sledeci nacin (kao sto je napisano u primeru za ovu
funkciju)
Code:

   $handle = opendir('/path/to/files');
   /* This is the correct way to loop over the directory. */
   while (false !== ($file = readdir($handle))) { 
       echo "$file\n";
   }

   /* This is the WRONG way to loop over the directory. */
   while ($file = readdir($handle)) { 
       echo "$file\n";
   }


Owl
04.03.2004. u 20:30 

NikolaVeber
neradnik na porodiljskom bolovanju
Karlsruhe

Član broj: 5115
Poruke: 1249
*.rz.uni-karlsruhe.de

Jabber: nikolaveber@jabber.org
ICQ: 121532865


Profil

icon Re: Kako izbrojiti fajlove u nekom folderu???04.03.2004. u 21:00
Ok, pardon. Ja sam to koristio samo sa proverom ekstenzije, tako da sam dobijao dobre rezultate...
blog.sun.com/srbija
Java User Group Karlsruhe
Studiranje u Nemačkoj

Officer, I saw the driver who hit me - his name was Johnny Walker.
04.03.2004. u 21:00 

noviKorisnik

Član broj: 13216
Poruke: 4513
194.247.222.*



Profil

icon Re: Kako izbrojiti fajlove u nekom folderu???05.03.2004. u 07:23
Code:
$dirname = 'scripts/';
$numoffiles = 0;
$dir = opendir ($dirname);
while ($item = readdir ($dir))
  if (filetype ("$dirname$item") == 'file')
   $numoffiles++;
closedir ($dir);
echo "Script in Archive: $numoffiles";



@_owl_
Nije mi jasno zbog čega ta napomena u citiranom kodu o ispravnom načinu zadavanja petlje za čitanje stavki iz direktorijuma - u smislu - ne vidim primer gde bi drugi (WRONG) način dao bilo šta neispravno.

Ovakvu konstrukciju video sam i na drugim mestima u Manualu, ali ne i dosledno - recimo stoji

while ($row = mysql_fetch_assoc ($result)) {...

umesto

while (false !== ($row = mysql_fetch_assoc ($result))) {...
05.03.2004. u 07:23 

Dejan Krstic
Banca Intesa Beograd

Član broj: 479
Poruke: 2560
*.beotel.net

ICQ: 5785142
Sajt: wap.sanduce.net


Profil

icon Re: Kako izbrojiti fajlove u nekom folderu???05.03.2004. u 10:18
Svi ste vi rekli sta treba a sta ne treba a niko coveku da da ispravan source :)

Code:

$brojac = 0;
$bytes = 0;
$dh = opendir($root_dir."/".$dir);
while (($file = readdir($dh)) != false)
{
    if (($file == ".") or ($file == "..")) continue;
    $brojac++;
    $bytes += filesize($root_dir."/".$dir."/".$file);
}
echo "Ukupno fajlova: ".$brojac."<br>";
echo "Ukupno kb: ".round($bajtova / 1024, 1);



Dejan Krstic
05.03.2004. u 10:18 

noviKorisnik

Član broj: 13216
Poruke: 4513
194.247.222.*



Profil

icon Re: Kako izbrojiti fajlove u nekom folderu???05.03.2004. u 10:32
Dejane, ako postoji neki poddirektorijum, $brojac ima malo da laže, zar ne?

Drugo - šta je neispravno u source-u koji sam objavio?
05.03.2004. u 10:32 

afwt
AF Web Team
Novi Sad/Chicago

Član broj: 8220
Poruke: 320
*.1.EUnet.yu

Sajt: milos.srdjevic.net/blog


Profil

icon Re: Kako izbrojiti fajlove u nekom folderu???05.03.2004. u 11:21
Napravio sam par rekurzivnih funkcija koje broje velicine fajlova (extenzije su parametar funkcije), broj linija koda, kao i broj fajlova. Ako ti treba, javi na PM.
ZelenaLutrija.com - Saznajte sve o lutriji za zelenu kartu (doživotni boravak u Sjedinjenim Američkim Državama)
05.03.2004. u 11:21 

Dejan Krstic
Banca Intesa Beograd

Član broj: 479
Poruke: 2560
*.beotel.net

ICQ: 5785142
Sajt: wap.sanduce.net


Profil

icon Re: Kako izbrojiti fajlove u nekom folderu???05.03.2004. u 14:24
Citat:
noviKorisnik:
Dejane, ako postoji neki poddirektorijum, $brojac ima malo da laže, zar ne?


Da, tacno. Uradjen je copy/paste iz jedne moje skripte i samo sam par sitnica promenio/dodao a kod mene se podrazumeva da nema direktorijuma tako da to ni ne proveravam.

Citat:
Drugo - šta je neispravno u source-u koji sam objavio?


Code:

while ($item = readdir ($dir))


Nisam siguran kako ce petlja da se ponasa. A i u php manualu, cini mi se, kaze da ne treba tako da se ide kroz direktorijum (ili mozda cak i da ne moze tako, nisam siguran).
Dejan Krstic
05.03.2004. u 14:24 

noviKorisnik

Član broj: 13216
Poruke: 4513
194.247.222.*



Profil

icon Re: Kako izbrojiti fajlove u nekom folderu???05.03.2004. u 14:51
readdir vraća string - ime stavke iz direktorijuma. Postoji mogućnost da petlja pukne ranije ukoliko je ime neke stavke prazan string, mada trenutno ne mogu da smislim da neki fajl ili poddirektorijum ima prazno ime...

Zato mi i nije jasan komentar u Manualu o definiciji ispravnog i neispravnog uslova petlje.

...

Najsmešnije mi je što u istom parčetu koda u Manualu stoji i sledeće
Code:
// Note that !== did not exist until 4.0.0-RC2
?
05.03.2004. u 14:51 

_owl_
Centar - BG

Član broj: 318
Poruke: 989
*.verat.net

Sajt: home.drenik.net/~owl


Profil

icon Re: Kako izbrojiti fajlove u nekom folderu???05.03.2004. u 23:40
Pa ne moze da vrati prazan string ali moze da vrati "0" (kao string) ali posto operator == ne vodi racuna o tipu taj string se prebacuje u integer a onda se
ceo izraz sracunava u FALSE i petlja se prekida. U slucaju da se kontrolise koji
se fajlovi nalaze u direktorijumu iz koga se cita kod koji ne koristi === (ili !==)
bi najverovatnije radio bez problema.
Ceo problem postoji posto PHP ne vodi racuna o tipa pa funkcije mogu da vracaju
podatke razlicitih tipova, u ovom slucaju stringove i FALSE (boolean).

Owl
05.03.2004. u 23:40 

noviKorisnik

Član broj: 13216
Poruke: 4513
*.dialup.neobee.net.



Profil

icon Re: Kako izbrojiti fajlove u nekom folderu???06.03.2004. u 18:54
Bravo Majstore!
'0' == 0 == false i puca...
Treba voditi računa o takvim detaljima, nejednom mi se desilo da dobijam pogrešan output zbog slične stvari i umesto da krenem sa striktnom proverom... - evo krećem odsad pa nadalje:
Code:
$dirname = 'scripts/';
$numoffiles = 0;
$dir = opendir ($dirname);
while (false !== ($item = readdir ($dir)))
  if (filetype ("$dirname$item") == 'file')
   $numoffiles++;
closedir ($dir);
echo "Script in Archive: $numoffiles";
06.03.2004. u 18:54 

[es] :: PHP :: Kako izbrojiti fajlove u nekom folderu???

[ Pregleda: 1143 | Odgovora: 11 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.