PHP. Hjælp til sortere mm.
HejJeg en ftp server, samt tilhørende hjemmeside kørende. Og lige nu kan jeg ikke komme videre med min kode. Indtil videre henter den data fra transfere loggen fra min ftpserver og skriver dem linje på linje(de 100 seneste). Det ser sådan ud:
Wed 8 11:26:49 47.68 MB /mappe1/mitupload/del1.zip brian
Wed 8 11:26:14 47.68 MB /mappe1/mitupload/del2.zip brian
Wed 8 11:24:33 15.23 MB /mappe1/mitupload/del3.zip brian
Altså har brian hentet 3 filerne i dag. Mit spørgsmål kommer så her i flere dele:
1) Hvordan får jeg mulighed for at sortere efter dag, dato, file, bruger? Det skal fungere på samme måde som dropbox som ex. når man opretter et spørgsmål her på siden. Dog skal nye data tilskrives automatisk, da dagen osv jo skifter.
2) Mulighed for kolapse hvis et download består af mange dele. ex. overstående bliver til
Wed 8 11:26:49 47.68 MB /mappe1/mitupload/del1.zip brian
Wed 8 11:26:14 47.68 MB /mappe1/mitupload/del2.zip brian
Wed 8 11:24:33 15.23 MB /mappe1/mitupload/del3.zip brian
-->
Wed 8 110,23MB /mappe1/mitupload/ brian
Sådan ser min kode ud indtil videre og kan ikke lige se hvordan jeg skal komme videre.
if($_GET['a'] == "show_all") echo "<a href='transfere_list.php'><u>Tilbage</u></a> (Viser seneste 100 overførsler)";
else echo "<a href='transfere_list.php?a=show_all'><u>Vis alt</u></a> <span style=\"color:FF0000\">(Advarsel. Kan være meget stor!)</span>";
echo "<br><br>";
print "<b>Månede, Dato, Tidspunkt, Data Overført, Downloaded, Bruger</b>";
function ByteSize($bytes) {
$size = $bytes/ 1024;
if($size < 1024)
{
$size = number_format($size, 2);
$size .= ' KB';
}
else
{
if($size / 1024 < 1024)
{
$size = number_format($size / 1024, 2);
$size .= ' MB';
}
else if ($size / 1024 / 1024 < 1024)
{
$size = number_format($size / 1024 / 1024, 2);
$size .= ' GB';
}
}
return $size;
}
//Vis indholdet af arrayet
$fil = file("/var/log/xferlog");
$fil = array_reverse($fil);
if($_GET['a'] == "show_all") $limit = count($fil);
else $limit = 100;
for($i = 0; $i < $limit; $i++) {
echo $fil[$n]."<br />\n";
$l = explode(" ", $fil[$i]);
echo $l[0].' '.$l[3].' '.$l[4].' '.(empty($l[8])?"":ByteSize($l[8])).' '.$l[9].'<b>'.' '.$l[14].'</b>';
}