Homepage selbermachen 7.851 Themen, 35.616 Beiträge

Bräuchte mal einen php-tipp

hansapark / 3 Antworten / Flachansicht Nickles

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









bei Antwort benachrichtigen
Synthetic_codes hansapark „Bräuchte mal einen php-tipp“
Optionen

@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

'); DROP TABLE users;--
bei Antwort benachrichtigen