FTP mappák tartalmának listázása

Sziasztok!

Nos pár napja elkezdtünk egy ismerősömmel, egy több felhasználós rendszert építeni... Cpanelen kiosztottam, mindenkinek van egy saját mappája, abban egy ami jelszavas és egy amit nem indexelünk.

A lényeg az lenne, hogy minden felhasználó mappáját almappák nélkül tudjuk listázni, indexelni. Mivel a felhasználók ide html, css stb fileokat is tölthetnek, csak bizonyos filetípusokat szerenénk listázni. Tehát egy oldalon szerenénk bizonyos filetípusból, de több mappából listázni, dátum szerint fileokat, almappák nélkül.

Nekem nagyon fel van adva ezzel a lecke. Egy hete nem haladok a dologgal semmit. Lehet rosszul pacsizok gogollal, de semmi értelmeset nem találtam. Pedig elvileg ez a script elférne pár sorban, nem találtam rá megoldást.

Tudom, hogy nem kérek egyszerűt, de remélem valakinek volt már hasonlója és/vagy tud segíteni. Nagyon hálás lennék, esetleg küldök egy sört, vagy akármit.

Hozzászólások

Hát nem tudom, jól értettem-e a problémát, de itt egy php-kód, talán segít:


$k_azon = opendir("../video");
while (false !== ($fajl = readdir($k_azon))) {

if ($fajl != "." && $fajl != ".." && $fajl != "*.jpg") {

echo "$fajl";

}
}
closedir($k_azon);

Huhh hát elég szépen haladok a dologgal és a php manualban is találtam egy hasonló kódot... csak az a baj hogy több mappa tartalmát ömlesztve szeretném megjeleníteni... itt a kód amit használtam, Dacr te is hasonlót írtál, annak segítségével találtam ezt is meg. :)

----

<?php
$mappa1 = "$DOCUMENT_ROOT"."/mappa1/";
$dir1 = opendir($mappa1);

$mappa2 = "$DOCUMENT_ROOT"."/mappa2/";
$dir2 = opendir($mappa2);

echo ("Freshest:");
while ($file = readdir($dir1) //azt hiszem valahol itt kéne a $dir2 -t alkalmazni, csak nem tudom hogyan...
{
$parts = explode(".", $file);
if (is_array($parts) && count($parts) > 1) {
$extension = end($parts);
if ($extension == "mp3" OR $extension == "MP3" OR $extension == "Mp3") // is extension ext or EXT ?
echo " $file
";
}
}
echo " />";
closedir($dir1);
closedir($dir2);
?>

----

Valahogy úgy szeretném, hogy a dir1 és a dir2 a fileok listázásánál egyben jelenjen meg.

Meg még valami, valahogy meg kéne oldanom, hogy dátum szerint rendezve legyen a dolog, csökkenő sorrendben, láttam ehhez is kódot, de nem nagyon tudom hova kéne beszúrni. :S

Tudnátok még ebben segíteni? aztán már tényleg békén hagyok mindenkit. :D Már látom, hogy nagy fába vágtam a fejszémet.

Még nem csináltam ilyet, de próbáld ki (nem tudom működhet-e):


while ($file1 = readdir($dir1) && $file2 = readdir($dir2))

A rendezést hirtelen én sem tudom, hogy oldhatnád meg. Talán esetleg úgy, hogy egy html select-be teszed option-ként, s azt rendezed. Ha lehet.
Rendezést én sql adatok lehívásánál szoktam csinálni, ott meg ugye már eleve úgy lehet lekérni.

Hátha valaki tudja rá a megoldást.

Egyszerre több mappa olvasásánál erre jutottam:
Így működött a while ciklusban:

while (($file1 = readdir($dir1))||($file2 = readdir($dir2)))
{
$parts = explode(".", $file1, $file2);
Csak itt meg a hibás explodeba való helyezés miatt az eredmény nem jelenik, meg. Biztos, hogy valahogy rosszul passzintottam össze...

Dátum szerinti rendezés:

Huh, hát ahogy eddig olvastam, úgy néz ki, hogy a sorrend úgy változik, ahogy a szerveren tárolva van, ami majdnem olyan, mintha a file feltöltési dátuma szerint rendezné. Ettől függetlenül, nemnagyon tudom, hogyan passzinthanám be az aláábit (elvileg rendezi dátum szerint a megjelenített eredményeket, csak nem tudom hoygan):

$files = preg_find('/./', $dir,
PREG_FIND_RECURSIVE|PREG_FIND_RETURNASSOC |PREG_FIND_SORTMODIFIED);
$files=array_keys($files);

Ha ezt használnám akkor valószínűleg újra kellene írnom az egészet, ugye?

kezdek nagyon belebonyolódni, megtenné egy olyan sima php script is, ami a letöltéseket így kezeli, vagy képes így kezelni ahogy leírtam... :S

Tehát mondjuk a /ver/www-ben van pár könyvtár, amit amúgy valami konfigból is ki tudsz olvasni, és azon könyvtárak tartalma kéne ömlesztve?

Vagy ez az almappák nélkül ez hogy van?

--
"SzAM-7 -es, tudjátok amivel a Mirage-okat szokták lelőni" - Robi.

Igen valahogy úgy ahogy mondod, szóval, van a /public_html azon belül a felhasználók mappái és azoknak a mappáknak a tartalma kellene ömlesztve.

/public_html/
----user1/
------dir1
------dir2
----user2/
------dir1
------dir2

tehát nekem csak a user1 és user2 mappák tartalma kellene, a dir1 és dir2-é már nem. tehát egyes mélységig szeretnék csak listázni, valahogy úgy, ahogy az indexben jelennek meg apache szerver esetén, csak mappaváltási lehetőségek nélkül, és csak bizonyos fileokat kilistázva, kiterjesztés szerint.

hi, van erre egy beepitett fv (glob), illetve a hozzaszolasoknal rekurziv megoldast is talalsz.

Eddig úgy néz ki, rosszul keresek, vagy nem nagyon vannak olyanok akik pont azt szeretnék megoldani amit én. Minden esetre a dátum szerinti rendezést a kommentekből megtudtam hogy kell, csak a többmappás témát nem. Szóval köszi a tippet :D már csak egy problem maradt. :)

Esetleg, ha a script egyes mappamélységig nézné át és úgy listázná az addig megtalált fileokat.