PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : anzahl der verzeichnisse zählen



boba
15-08-2005, 09:49
Hallo,
mit folgendem script kann ich alle Ordner anzeigen, jetzt würde ich diese gerne zählen, und evtl auch die im 2ten Unterverzeichniss vorhandenen .png dateien.
ein count($file2) bringt mir nur jede menge 1sen


foreach (range('a', 'z') as $letter) {

$pfad="images/$letter/";
$verz=opendir ($pfad);

while ($file = readdir ($verz))
{

$file2 = ereg_replace ("(\\[)(.*)","",$file);
$file2 = ereg_replace ("(\\()(.*)","",$file2);
$file2=trim($file2);

echo "<br>";
echo $file2;

}

}
closedir($verz);

quinte17
15-08-2005, 09:54
wie wäre es, wenn du deine verzeichnisse in ein array reinschreibst, also jeder ordner ein element, ist echt einfach:


foreach (range('a', 'z') as $letter) {

$pfad="images/$letter/";
$verz=opendir ($pfad);
$ordner;

while ($file = readdir ($verz))
{

$file2 = ereg_replace ("(\\[)(.*)","",$file);
$file2 = ereg_replace ("(\\()(.*)","",$file2);
$file2=trim($file2);

echo "<br>";
echo $file2;
$ordner[] = $file2;

}
echo "<br>Anzahl der ordner: ".sizeof($ordner)."<br>";
}
closedir($verz);


dass mit den png-dateien musst du eigentlich synchron machen.. außer du weißt einen shell-befehl, der dir das gibt, und du den mit exec dort ausführen kannst...

greetz

greetz

boba
15-08-2005, 09:58
cool danke, siteof war ungefähr das was ich gesucht habe, als newbie hatte ich versucht mit return $file2, ein array zu übergeben :(.
Jetzt müssen erstmal die punkte weg.

danke

boba
15-08-2005, 10:42
cool danke, siteof war ungefähr das was ich gesucht habe, als newbie hatte ich versucht mit return $file2, ein array zu übergeben :(.
Jetzt müssen erstmal die punkte weg.

danke

edit:

eine kleine änderung da ich noch die Ordner mit zahlen eingebaut habe.




//foreach (range('a', 'z') as $letter) {
$abz = array(1,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u, v,w,x,y,z);

for ($j = 0; $j <= 26; $j++) {

$pfad="images/$abz[$j]/";
$verz=opendir ($pfad);
$ordner;
$shots;

while ($file = readdir ($verz))
{

if($file != "." && $file != "..")
{
$file2 = ereg_replace ("(\\[)(.*)","",$file);
$file2 = ereg_replace ("(\\()(.*)","",$file2);
$file2=trim($file2);
$ordner[] = $file2;
//echo $file2;

//zählt die png dateien
$einzel = opendir ("$pfad/$file/shots");

while ($file3 = readdir ($einzel))
{
if($file3 != "." && $file3 != "..")
{
//echo $file3;
//echo "<br>";
$shots[] = $file3;
}
}

}
}



}

closedir($verz);

maik15
15-08-2005, 10:54
Hi,

kann mir jemand sagen, wie Apache das macht mit dem "Ordnerauslesen" und dann darauf verlinken?
Habt ihr ein bsp. Script???

Bin noch am Googlen!

Gruß
Maik

michael.sprick
15-08-2005, 12:02
Willst Du jetzt wissen, wie das Listing implementiert wurde oder wie man es aktiviert?

zum aktivieren;



Options +Indexes

und ggf.


IndexOptions FancyIndexing
bzw.
FancyIndexing on

maik15
15-08-2005, 12:15
nee, ich meine das so, wie lesen die das Verzeichnis (localhost) aus und geben alle darin enthaltenen Ordner/Datein mit einem Link darauf aus?
Dort steht ja dann:
Name1 größe datum ...
Name2 " " ...
usw.
und alles ist verlinkt.
Wie geht das?

Maik

michael.sprick
15-08-2005, 14:29
Also das hat mit PHP garnix zu tun... wie das jetzt genau implementiert ist kannst du ja im apache quellcode nachschauen...

grundsätzlich ist der Ablauf:
1) angeforderten Ordner öffnen
2) gesamten Inhalt lesen
3) Icon je nach Typ des Eintrags festlegen (Dir, MPG, JPG, HTML,...)
4) stat() für den Eintrag aufrufen um Details zu ermitteln
5) Inhalt als HTML darstellen