Not logged in. · Lost password · Register
Forum: PHP & Datenbanken Codeschnipsel RSS
Dateien im Ordner
johnpatcher #1
Member since Aug 2006 · 13 posts
Group memberships: Cehmes-Entwickler, Mitglieder
Show profile · Link to this post
Subject: Dateien im Ordner
In der Codeschnipselsammlung ist ein Code der so aussieht:

[php]<?php
   $home_pfad = ".";
   $i = 0;

   $dh = opendir($home_pfad);
   while ($datei = readdir($dh)) {
      if($datei !== ""   &&
         $datei !== "."  &&
         $datei !== ".." &&
         !is_dir($datei)) {
            $i++;
      }
   }

   echo "$i Dateien gefunden";

?> [/php]

Das ist sehr kompliziert, und ist so viel einfacher:

[php]<?php
echo count(glob('*.*')) . ' Dateien gefunden';
?>[/php]

Na was ist kürzer / einfache :) ?
Avatar
Janek (Administrator) #2
User title: Admin
Member since Aug 2006 · 125 posts · Location: Potsdam
Group memberships: Administratoren, Cehmes-Entwickler, Mitglieder
Show profile · Link to this post
Danke ich aktualisier das gleich mal die Codeschnipsel sind noch ziemlich alt und nicht die besten. Aber durch solche Hilfe wird sich das sicher ändern *g*
Die Funktion glob() kannte ich bisher gar nicht...
>> PHP4You
>> Against ICQ
a1Pha #3
User title: wayne?
Member since Aug 2006 · 6 posts · Location: Düsseldorf / NRW / Germany
Group memberships: Mitglieder
Show profile · Link to this post
<?php
foreach (glob("*.txt") as $filename) {
   echo "$filename size " . filesize($filename) . "\n";
}
?>


^^ interessant, wirklich interessant. liefert:

funclist.txt size 44686
funcsummary.txt size 267625
quickref.txt size 137820

da sieht man, dass php.net besser aufräumen sollte, als ich damals nach sowas gesucht habe, musste ich auf die alte version zugreifen, weil ich im manual keine verweise auf glob() gefunden hab -.-
Avatar
Janek (Administrator) #4
User title: Admin
Member since Aug 2006 · 125 posts · Location: Potsdam
Group memberships: Administratoren, Cehmes-Entwickler, Mitglieder
Show profile · Link to this post
Hehe siehe http://www.php.net/glob :)
Wegen dem Codeschnipsel: so kann man leide rkein verzeichnis speziell angeben und ich bin noch amprobieren wie ichs am besten mache das das geht aber das sollte mit regulären ausdrücken ja kein prob sein nur zeigt der bei mir bis jetzt immer 0 dateien :D

EDIT1: Lol wie dumm ich doch bin wie soll das mit regulären Ausdrücken gehen? bzw eigendlich ein großes prob... mit chdir könnte es vieleicht gehen

EDIT2: So hab ichs nun gelöst:

  1. <?php
  2.  
  3. $dir = "../../";
  4.  
  5. chdir($dir);
  6. echo count(glob('*.*')) . ' Dateien gefunden';
  7. chdir("./");
  8.  
  9. ?>
>> PHP4You
>> Against ICQ
This post was edited on 2006-08-11, 00:17 by Janek.
Shin #5
Member since Aug 2006 · 9 posts
Group memberships: Cehmes-Entwickler, Mitglieder
Show profile · Link to this post
warum nicht
echo count(glob('../../*.*')) . ' Dateien gefunden';
das müsste doch auch gehen
Avatar
Janek (Administrator) #6
User title: Admin
Member since Aug 2006 · 125 posts · Location: Potsdam
Group memberships: Administratoren, Cehmes-Entwickler, Mitglieder
Show profile · Link to this post
Ich hab es versucht aber es funktioniert wohl nicht. Vieleicht hab ich mich auch nur ziemlich dumm angestellt :)
>> PHP4You
>> Against ICQ
Shin #7
Member since Aug 2006 · 9 posts
Group memberships: Cehmes-Entwickler, Mitglieder
Show profile · Link to this post
hmm, also bei mir lokal funktioniert es.

*Tipp*
  1. <?php
  2.  
  3. $dir = "../../";
  4.  
  5. chdir($dir);
  6. echo count(glob('*.*')) . ' Dateien gefunden';
  7. chdir("./"); // das hier könnte man sich ersparen da es logischerweise nichts bewirkt
  8.                // ( jemals ' cd ./ ' auf der Konsole versucht? ;) )
  9.  
  10. ?>
Avatar
Janek (Administrator) #8
User title: Admin
Member since Aug 2006 · 125 posts · Location: Potsdam
Group memberships: Administratoren, Cehmes-Entwickler, Mitglieder
Show profile · Link to this post
Ja hast eigendlich recht nur sollte schon irgendwie wieder ein chdir ins Ausgangsverzeichnis erfolgen. Ich muss mir da mal was ausdenken vieleicht hast du eine Idee? :)
>> PHP4You
>> Against ICQ
Close Smaller – Larger + Reply to this post:
Verification code: VeriCode Please note the verification code from the picture into the text field next to it.
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Special characters:
Go to forum
This board is powered by the Unclassified NewsBoard software, 20090606-dev, © 2003-8 by Yves Goergen
Current time: 2012-02-05, 19:54:53 (UTC +01:00)