Razeni souboru podle urcity definice

7 příspěvků

Archiv diskusního fóra

Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.

  1. V adresari "lastlog" mam 5 souboru: A.dat, B.dat, C.dat, D.dat a E.dat. V kazdem z techto souboru je ulozen retezec o 14 Bajtech: datum vytvoreni ve formatu RRRRDDMMhhmmss - takze kdybych pouzil na tyto retezce rsort(), zarucene by byly serazeny od nejnovejsiho po nejstarsi. Potreboval bych skript, ktery includuje soubory ze slozky "lastlog" v serazeni od nejnovejsiho po nejstarsi. Datum, podle ktereho se zjistuje stari souboru, je ulozeno prave v tom souboru. Tento skript mi pouze vypise soubory v inverznim abecednim poradku (Z - A). <? $adresar = opendir('./lastlog'); while ($soubor1 = readdir($adresar)) $soubory[] = $soubor1; rsort($soubory); for($i=0;$i<count($soubory)-2;$i++): include($soubory[$i]) endfor; closedir($adresar); ?> Poznamka: tohle se vam zda mozna jako blbost, ve skutecnosti je to neco jineho, tady jsem to akorat hodne zjednodusil, aby me kazdy pochopil. Dekuji za rady :)
  2. Mas namysli neco takoveho (neni to odzkousene)? <?php $dir = "./lastlog/"; $handle = opendir($dir); // otevre adresar while ($file = readdir ($handle)) if(is_file($dir.$file)) // provede, pokud $file je soubor { $fp = fopen($dir.$file,"r"); // otevre soubor $data = fread($fp,14); // nacte timestamp fclose($fp); // zavre $list["$file"]=$data; // ulozi do pole, pr.: $list['C.dat'] = 20050109153859 } arsort($list); // seradi vysledne pole (hodnoty) sestupne se zachovanim klicu while (list ($fn, $fd) = each ($list)) // prochazi pole { // (ty zavorky tu byt musi) include($dir.$fn); // a includuje soubory podle obsahu klice. } ?>
  3. Hele nechci Vam do toho skakat kdyz se tak pekne snazite ale rikaji vam neco fce FILECTIME a FILEMTIME ? imho si toho dost zjednodusite
  4. možná se to nebude nehodit, ale třeba někomu jinému, v souborech by ani nemusl být datum, ale rovnou by šlo pracovat s časem poslední úpravy dokumentu - filemtime(): <?php foreach (glob("lastlog/*.txt") as $file) { $list["$file"]=filemtime($file); } arsort($list); while (list ($fn, $fd) = each ($list)) { echo "<p>".date("j.n.Y G:i:s", $fd)."<br />\n"; include($fn); echo "</p>\n"; } ?>
  5. Havel> proc prochazis pole konstrukci WHILE , LIST a EACH? ma to nakou vyhodu proti nojvesimu a snadnesjimu zapisu FOREACH?
  6. to je původní řešení, já se zabýval polem glob, resp. fcí filemtime ... aniž jsem si všimnul, že jsi byl rychlejší :-)
  7. když to mají dostat celé, tak: <?php foreach (glob("lastlog/*.dat") as $file) { $list["$file"]=filemtime($file); } arsort($list); foreach ($list as $fn => $fd) { echo "<p>".date("j.n.Y G:i:s", $fd)."<br />\n"; echo nl2br(file_get_contents($fn))."</p>\n"; } ?>

← Zpět na všechna témata