Autor Zpráva
Peto
Profil *
Ahoj používam tento kód na upload, ale pořeboval bych aby se mi uploadované soubory řadili dle data vložení, jen nevím jak to udělat.
<? 
$nas_sou="soubor.php"; 
$handle=opendir('.'); 
$i=0; 
$j=0; 
while (false!==($file = readdir($handle))) 
{ 
if ($file!="."&&$file!=".."&&!is_dir($file)&&$file!=$nas_sou) 
{ 
$soubor[$i]="$file"; 
$velikost[$i]=filesize ($file); 
$zmena[$i]=date("H:i:s d.m.Y ",filemtime($file)); 
$i++; 
} 
if ($file != "." && is_dir($file)) 
{ 
$adresar[$j]="$file"; 
$j++; 
} 
} 
closedir($handle); 
function vypis($s,$v,$z) 
{ 
echo "<table>\n";
echo "<tr><td><h2>Název soubor</h2></td><td><h2>Velikost v bytech</h2></td><td><h2>Posledni změna</h2></td></tr>\n"; 
for($i=0;$i<count($s);$i++) 
{ 
echo "<tr><td align=left>"; 
echo '<p><a href="'.$s[$i].'" title="'.$s[$i].'" target="_blank"class="odkaz">'.$s[$i].'</a></p>'; 
echo "</td><td align=center><p>$v[$i]</p>"; 
echo "</td><td><p>$z[$i]</p>"; 
echo "</td></tr>\n"; 
} 
echo "</table>\n"; 
} 
vypis($soubor,$velikost,$zmena); 
?>
fajzen
Profil
No, ja by som to robil takto:
namiesto troch jednorozmerných polí $soubor, $velikost a $zmena by som použil jedno (tuším) dvojrozmerné pole a namiesto ukladania už upraveného času zmeny súboru by som ukladal to čo vráti filemtime- ľahšie sa to bude zoraďovať. Takže:
riadok 8-14:
if ($file!="."&&$file!=".."&&!is_dir($file)&&$file!=$nas_sou)
{
  $soubor[$i]['nazov']= $file; 
  $soubor[$i]['velikost']= filesize($file); 
  $soubor[$i]['zmena']= filemtime($file); 
  $i++; 
}


Na triedenie polí podľa nejakej definovanej funkcie slúži funkcia usort(). Takže pred výpisom pole zotriedime:
// porovnavaca funkcia
function cmp($a, $b)
{
  if($a['zmena'] == $b['zmena']) {
    return 0;
  }

  return ($a['zmena'] < $b['zmena']) ? -1 : 1;
}

// zotriedime pole
usort($soubor, 'cmp');


Času potom dáš formát až pri výpise

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: