ugrás a tartalomhoz

Könyvtár tartalom, kicsit másként

fchris82 · 2004. Ápr. 12. (H), 20.45
Sziasztok!

A feladat:
Ki kéne listáznom egy könyvtár fájljait.

A probléma:
Mindezt nem a fájlok neve szerint kéne rendeznem, hanem a fájlok utolsó módosításának dátuma ( filectime() fv ) szerint.

Hogyan oldom meg a rendezést, hogy az összetartozó dolgok, együtt "rendeződjenek"?!
 
1

usort()

T.G · 2004. Ápr. 14. (Sze), 21.28
Speciális rendezésre általában a usort fv.-t lehet használni:
http://hu.php.net/manual/hu/function.usort.php
2

Hmm....

Anonymous · 2004. Ápr. 15. (Cs), 17.14
A parancssori progizáshoz nem nagyon értek, de ott a megoldás. Asszem az ls tud ilyet, de nem vagyok biztos benne. PHP kód:
<?php
$list = ´IDE_ÍRD_BE_A_PARANCSOT´;
echo "<CODE>".$list."</CODE>";
?>

Ezzel sajnos csak kiíratni lehet :((((.
3

Re: Hmm....

Bártházi András · 2004. Ápr. 15. (Cs), 17.44
Nagy valószínűséggel itt sokkal-sokkal szebb megoldás egy usort használata, mint a parancssori programozás, hiszen - gondolom én - valami designt is rá szeretne húzni.

Egyébként a $list tartalmát simán fel lehet dolgozni, és nem csak kiiratni lehet, de semmiképp sem egy előremutató és szép megvalósítás. ;)

-boogie-
4

én már annak is orulnék ha

Anonymous · 2004. Jún. 12. (Szo), 21.07
én már annak is orulnék ha a konyvtár tartalmát ki tudnám listázni(linkként) és ha van még konyvtár arra klikkelve ujlapra annak a tartalmát listázza(linkelve)és ha van alatta konyvtár........
tudna valaki segiteni?kulon forum is nyilt erre a témára!
5

progi

bbalint · 2004. Jún. 14. (H), 15.58
<?php
 function fileokrendeződve_cb($a, $b){
  global $fileokrendeződve_könyvtár;
 
  $a = filemtime($fileokrendeződve_könyvtár.$a);
  $b = filemtime($fileokrendeződve_könyvtár.$b);
  if($a==$b)
   return(0);
 
  return($a>$b? -1: 1);
 }
 
 function fileokrendeződve($könyvtár){
  global $fileokrendeződve_könyvtár;
 
  $fileokrendeződve_könyvtár = $könyvtár; // könyvtár mentése, rendezéshez
 
  $filék = opendir($könyvtár);
 
  while(($file = readdir($filék)) !== false)
   if(##kukac##is_file($könyvtár.$file))
    $rendez[] = $file;
 
  usort($rendez, 'fileokrendeződve_cb');
 
  return($rendez);
 }
 print_r(fileokrendeződve('/tmp/'));
?>


ez a fileokrendeződve() függvény módosításuk idejének megfelelően csökkenő sorrendben rendezve adja vissza egy tömbben a fileok neveit.
a paraméter megadásánál fontos a végén a perjel és ennyi.