Homepage selbermachen 7.852 Themen, 35.619 Beiträge

Bräuchte mal einen php-tipp

hansapark / 3 Antworten / Baumansicht 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
hansapark Synthetic_codes „@frage2: ct ist bei mir ein generischer counter, angelehnt an das cx-register...“
Optionen

oh jetzt hab ich erstmal zu tun.
heftig..

aber danke schon mal..

mfg

bei Antwort benachrichtigen
Synthetic_codes hansapark „oh jetzt hab ich erstmal zu tun. heftig.. aber danke schon mal.. mfg“
Optionen

hi, sieht schlimmer aus als es ist, weil das nickles-cms kein syntax-highlighting unterstützt.
kleiner tipp, wenn du hilfe zu den funktionen und möglichkeiten von PHP brauchst, dann schau dir das manual von php mal genauer an unter de.php.net

hier gibt es für jede funktion einen eintrag, bei den meisten sind auch gleich beispiele zur benutzung dabei, und in den comments findet sich der ein oder andere durchaus nützliche Codeschnipsel :-)

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