Toon posts:

[PHP] tel bestanden

Pagina: 1
Acties:
  • 44 views sinds 30-01-2008

Verwijderd

Topicstarter
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php 
echo "<table><tr><td class=\"newstext\">naam</td><td class=\"newstext\">aantal</td></tr>";
if ($handle = opendir('foto')) {
    while (false !== ($file = readdir($handle))) { 
        
        if ($file != "." && $file != "..") { 
            echo "<tr><td class=\"newstext\"><a href=\"foto/$file\">$file</a></td>"; 
        }
        
        
    }
    $map = opendir($file); 
        // De map 

        while($b = readdir($map)) { if(!is_dir($b) && $b != "." && $b != "..") { $i++; } } 
        echo "<td class=\"newstext\">$i aantal plaatjes.</td></tr>";
        $i = 0;

    closedir($handle); 
}
?>


waarom telt hij hier niet het aantal bestanden per file? Als ik ipv opendir('foto') invul telt hij wel alle bestanden in de dir foto, maar hij moet juist de bestanden gaan tellen in de subdirs van foto, en dan wel zoiets:

chick 1 - 12 fotos
chick 2 - 13 fotos
enz.

de dir structuur kan er dan zo uitzien: foto/chick1/ en foto/chick2

Iemand een idee?

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

Je hebt recursie nodig:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function countFiles($dir) {
   opendir($dir);
   $aantal = 0;
   while(false !== ($file = readdir($handle))) {
      if($file == '.' || $file == '..') {
         continue;
      }
      else if(is_dir($dir . "/" . $file)) {
         $aantal += countFiles($dir . "/" . $file);        
      }
      else {
         $aantal ++;   
      }
   }
   return $aantal;
}

[ Voor 9% gewijzigd door kvdveer op 29-01-2003 13:44 . Reden: bugfix ]

Localhost, sweet localhost


Verwijderd

Topicstarter
en wat doe ik hiermee? dit zet ik ervoor ofzo? Want ik zie nergens echo ofzo staan? En beeld hij met die recursie dan ook wel de titels van mijn dirs af?

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 23-08 10:39

Janoz

Moderator Devschuur®

!litemod

Hij "telt niet het aantal bestanden per file" (beetje rare zin, maar ik denk dat je dir bedoeld) omdat je dat niet vraagt. Kijk nog eens goed naar je eigen code en probeer eens per regel te kijken wat er wordt gedaan. Kijk ook ff naar de bereiken van de verschillende lussen. Ik denk dat je dan wel snel zult zien wat je fout doet.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
Nou dat valt dus tegen :) daarom vraag ik hulp ;) Ik zie nix geen echte fouten?

Verwijderd

Topicstarter
and sjez, blond :D

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 23-08 10:39

Janoz

Moderator Devschuur®

!litemod

Geloof er persoonlijk niet zoveel van. Ga nu gewoon eens stap voor stap door je code en kijk wat er in elke regel gebeurt. Jij gaat mij niet wijsmaken dat je dan nog steeds gelooft dat jou progje regels 12 t/m 19 uitvoert voor elke $file die uit de handle gelezen wordt.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
lees ff een goede tutorial over bestanden en kijk vervolgens heel rustig naar je code. probeer te bedenken wat je precies bereikt met die code en wat je precies bereikt met kvdveer's code

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

En teken anders wat op papier, en ga vervolgens ff een kijkje nemen bij beginnersweb.nl ofzo.

En als je code zoekt moet je bij codebase.nl zijn.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1

Dit topic is gesloten.