Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Zliczanie ilości plików w katalogu - jak najłatwiej ?
Forum PHP.pl > Forum > Przedszkole
Setesh
Mam takie pytanie... wykorzystuje listowanie katalogu do wyświetlenia plików lub katalogów w danym katalogu ale... potrzebuje jeszcze przed listowaniem poznać ilość plików/katalogów w danym katalogu aby wygenerować odpowiednią tabelkę w htmlu.

Wie ktoś czy istnieje jakaś funkcja w php w stylu np
  1. <?php
  2. $ile = Count_files($dir)
  3. ?>
? bardzo by mi to pomogło a jak nie to jak taką funkcję najłatwiej napisać ? sad.gif

PS : chodzi o PHP 4 bo w 5 znalazłem coś takiego :

  1. <?php
  2.  $katalog = 'c:';//realpath(dirname(__FILE__));
  3.  $dir = scandir($katalog);
  4.  $files = count( $dir );
  5.  echo 'Plików : '.$files;
  6. ?>


Ale potrzebuje z php 4 sad.gif
pbnan
Użyj iteratorów i pętli while - po więcej odsyłam do manuala lub Google smile.gif
//wtedy nie będziesz musiał znać rozmiarów przyszłej tabelki, tylko prosto zapiszesz:
  1. <?php
  2. echo '<table>';
  3. while (...) {
  4. echo '<tr><td>' /*...*/
  5. }
  6. ?>
href
Kod
count(glob('katalog/*.*'));
Setesh
tak tylko nie chce znowu pętelki sobie na szyje zakładać smile.gif tzn nie chce mieszać w kodzie bo jakby nie patrzeć to funkcja typu Count_files($dir) tez będzie miała w sobie pętlę ale zajęło by mi może z 1 linijkę smile.gif

A jak niby dopasować to co napisałeś do tego :

  1. <?php
  2. $sciezka = realpath(dirname(__FILE__)).$firstdir.$_GET['cat'].'/'.$_GET['tips'];
  3. echo '<table><tbody>';
  4. if($uchwyt = opendir($sciezka))
  5. {
  6.  while(false !== ($plik = readdir($uchwyt)))
  7. {
  8.  if(($plik != '.') && ($plik != '..'))
  9.  {
  10. if(!is_dir($sciezka.$plik))
  11. {
  12.  include($sciezka.'/'.$plik);
  13.  echo '<tr valign=top><td>'.$data_publikacji.' </td>';
  14.  echo '<td><a '.$css_menu.' href=index.php?page='.$page.'&cat='.$cat.'&tips='.$tips.'&pos='.$plik.'>'.WinToISO($title).'</a></td></tr>';
  15. }else{};
  16.  }  
  17. }
  18.  closedir($uchwyt);
  19. }
  20. echo '</tbody></table>';
  21. ?>


Chcę zrobić tabelkę na zasadzie 3 kolumny na xx wierszy czyli coś ala... to :

C1 C2 C3
------ ------ ------ R1
------ ------ ------ R2
------ ------ R3

Więc nie za bardzo mi to pomoże jeżeli nie poznam ilości plików lub katalogów w danym katalogu sad.gif

To mi o dziwo wywala za każdym razem że tylko jeden plik znalazło sad.gif

  1. <?php
  2.  $katalog = 'C:usrkrasnalwwwszablonpage';
  3.  $files = count(glob($katalog));
  4.  echo 'Plików : '.$files.' w katalogu : <br><br>'.$katalog;
  5. ?>


Mój błąd sad.gif Już działa smile.gif

poprawka :

  1. <?php
  2.  $katalog = 'C:usrkrasnalwwwszablonpage';
  3.  $files = count(glob($katalog.'/*.*'));
  4.  echo 'Plików : '.$files.' w katalogu : <br><br>'.$katalog;
  5. ?>
kiler129
Najszybszym sposobem będzie zrobienie petli czytajacej pliki w katalogu i liczenie ile razy wykonala sie pętla winksmiley.jpg
Setesh
Cytat(Setesh @ 30.04.2007, 19:52:29 ) *
tak tylko nie chce znowu pętelki sobie na szyje zakładać smile.gif tzn nie chce mieszać w kodzie bo jakby nie patrzeć to funkcja typu Count_files($dir) tez będzie miała w sobie pętlę ale zajęło by mi może z 1 linijkę smile.gif


Taaa.... już to rozwiązałem na powyższym przykładzie za co wielkie dzięki dla href'a smile.gif

w sumie to można już ten temat dać jako offtopic.gif tongue.gif
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-2025 Invision Power Services, Inc.