hallo..
ich habe heute zum ersten mal was mit php versucht.
eine funktion , die aus 8 ordnern die grafiken liest und zählt und dann die zahl ausgibt..
(bilder online)
(halb zusammengeklaut, aber jetzt geht sie)
dabei wiederholt sich dieselbe funktion 8 mal (mit opendir und count) und am ende wird alles addiert.
wie kann man es einrichten zu sagen:
lies: verzeichnis a, verzeichnis b, verzeichnis c.
mit einem schlag?
oder wie kann ich erreichen dass ein ordner samt bestimmter unterordner ausgelesen wird?
---------------------------------------------------
frage 2:
wenn ich dann die daten in einem array habe, kann ich irgendwie alle ausfiltern, die ein "_tb" im namen haben?
(thumbnail)
danke schon mal für hilfreiche tips
mfg hans
Homepage selbermachen 7.851 Themen, 35.616 Beiträge
@frage2:
$ct ist bei mir ein generischer counter, (angelehnt an das cx-register des 80386)
for($ct = 0; $ct<count($arraymitbilddaten);$ct++)
{
if(strpos($arraymitbilddaten[$ct], "_tb") !== FALSE)
unset($arraymitbilddaten[$ct]);
}
$arraymitbilddaten = array_values($arraymitbilddaten);
dieser schnipsel filtert alle einträge deines Arrays, die _tb enthalten aus
@frage1:
du könntest die system() funktion verwenden. Diese gibt den output als String zurück.
zb:
$x = system("find -type f");
in $x ist danach eine liste mit allen dateien rekursiv vom aktuellen verzeichnis aus. Willst du ein anderes verzeichnis zum start, dann gebe dieses zwischen find und -type an, also zb find / -type f gibt dir alle dateien die im system befindlich sind aus.
jeder eintrag von $x wird dabei mit \n abgeschlossen, sprich, du musst die dateinamen anschliessend mit strtok weiterverarbeiten, wenn du zb ein array haben möchtest, in dem jeder wert einen dateinamen enthält.
beispiel:
$x = system("find /home/meinuser -type f");
$y[] = strtok($x,"\n");
while($y[count($y)-1] !== FALSE)
$y[] = strtok("\n");
unset($x);
dieses beispiel liest alle dateien und untergeordneten dateien von /home/meinuser ein(inklusive komplettem pfad), und verarbeitet sie dann zu einem array. $y ist dieses fertige array. Geht sicher eleganter, aber das war das erste was mir so einfiel :-P
Beachte: diese Methode geht nur auf Linux-basierten hosts(bei professionellem webhosting die regel).
HtH