Autor | Zpráva | ||
---|---|---|---|
AMD Profil |
#1 · Zasláno: 4. 10. 2006, 22:59:52
Zdravím, potřebuju prolézt jeden jeden adresář a vypsat posledních třeba 15 naposled změněných souborů. Pro mě, non-PHPáka :), to není úplně jednoduchý... Napsal jsem tohle, ale nevím jak dál :-(
$ldir = "/nějakej/adresář/"; Poraďte prosím. |
||
nightfish Profil |
#2 · Zasláno: 4. 10. 2006, 23:16:18
tohle by možná mohlo fungovat
$soubory = array(); $ldir = "/nějakej/adresář/"; if ($handle = opendir($ldir)) { while (false !== ($file = readdir($handle))) $soubory[] = array(Date("YmdHis", filemtime($ldir.$file)), $ldir.$file); closedir($handle); } //tady možná bude potřeba trochu zaexperimentovat //nápověda je na http://cz.php.net/manual/cs/function.array-multisort.php array_multisort ($ar[0], SORT_ASC, SORT_STRING); //vypsání prvních 15 záznamů (v případě, že jich je v poli míň, vypíše jen ty, co tam jsou for ($i = 0; $i < (Count($soubory) >=15) ? 15 : Count($soubory)); $i++) { echo $soubory[$i][0].": ".$soubory[$i][1]."<br />"; } |
||
AMD Profil |
#3 · Zasláno: 4. 10. 2006, 23:29:15
Tohle je (po menší úpravě) vypíše jak si jen zamane :/ Bude tam háček jen v tom multisortu, ale nemůžu přijít na to jakej...
|
||
nightfish Profil |
#4 · Zasláno: 4. 10. 2006, 23:51:11
tohle by mělo fungovat
<?php $soubory = array(); $ldir = "/nějakej/adresář/"; $pocet = 0; if ($handle = opendir($ldir)) { while (false !== ($file = readdir($handle))) { if ($file == "." || $file == "..") continue; $soubory[0][$pocet] = Date("YmdHis", filemtime($ldir.$file)); $soubory[1][$pocet] = $ldir.$file; $pocet++; } closedir($handle); } //tady možná bude potøeba trochu zaexperimentovat //nápovìda je na http://cz.php.net/manual/cs/function.array-multisort.php array_multisort ($soubory[0], SORT_ASC, SORT_NUMERIC); //vypsání prvních 15 záznamù (v pøípadì, že jich je v poli míò, vypíše jen ty, co tam jsou for ($i = 0; $i < ((Count($soubory[0]) >=15) ? 15 : Count($soubory[0])); $i++) { echo $soubory[0][$i].": ".$soubory[1][$i]."<br />"; } ?> |
||
AMD Profil |
#5 · Zasláno: 5. 10. 2006, 06:39:39
To je ono, jen se tam musí dát SORT_DESC, místo SORT_ASC. Díky moc!
|
||
AMD Profil |
#6 · Zasláno: 5. 10. 2006, 07:52:01
Aha, ne tak docela - seřadí se jen ta data - což znamená, že ke správnému datu se přiřadí špatnej soubor, takže místo
array_multisort ($soubory[0], SORT_ASC, SORT_NUMERIC);dáme array_multisort ($soubory[0], SORT_DESC, SORT_NUMERIC, $soubory[1]); |
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0