opendir sort names

Status
Niet open voor verdere reacties.

chandlurmark

Gebruiker
Lid geworden
12 mrt 2008
Berichten
58
Beste mensen, ik heb hier een script van php die de hele directory laat zien, nu wil ik alleen nog dat hij ze sorteert op naam of op datum, hoe krijg ik dit voor elkaar?

Alvast bedankt :)

<?php

$time = explode(" ", microtime());
$startTime = $time[1] + $time[0];

// de cache van de server legen
clearstatcache();

// functie om de grootte om te zetten van bytes naar een duidelijkere grootte
function size($filesize)
{
if($filesize >= 1048576)
$size = number_format(($filesize / 1048576), 2) . " MB";
elseif($filesize >= 1024)
$size = number_format(($filesize / 1024),0) . " KB";
elseif($filesize >= 0)
$size = $filesize . " bytes";
else
$size = "0 bytes";

return $size;
}


// alles in een array zetten
if(isset($_GET['dir'])) $dir = $_GET['dir'];
else $dir = ".";

// mappen...
$openDir = opendir(".");
while (false !== ($dir = readdir($openDir)))
{
if ($dir != "." && $dir != ".." && $dir != "browser" && is_dir($dir))
{
$data['dir'][] = $dir;
}
}
@sort($data['dir']);
closedir($openDir);

// controleren of de dir uit de url wel bestaat
$url = "bad";

if(isset($_GET['dir']))
{
for($i = 0; $i < count($data['dir']); $i++)
{
if($_GET['dir'] == $data['dir'][$i])
{
$url = "good";
break;
}
}
}

if($url == "bad" AND isset($_GET['dir']))
{
echo "niet *****n met de url!";
exit();
}

// bestanden...
if(isset($_GET['dir'])) $dir = $_GET['dir'];
else $dir = ".";

$openDir = opendir($dir);
while(false !== ($file = readdir($openDir)))
{
if (is_file($dir."/".$file))
{
$data['file']['name'][] = $file;
$data['file']['url'][] = $dir ."/". $file;

$file = $dir."/".$file;
$data['file']['size'][] = filesize($file);
$data['file']['date'][] = filemtime($file);
$data['file']['type'][] = strtolower(strrchr($file,'.'));
}
}
closedir($openDir);
@asort($data['file']['name']);

//
// oke, alles staat nu in een array. nu kunnen we het makkelijk ophalen.
// nu is het alleen een beetje html met wat php meuk erin om alles weer te geven. het makkelijke dus :)
//

?>
<html>
<head>
<title>Upload voor 't ROC via Barkies website !</title>

<style type="text/css">
<!--
body, td {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
color: #000000;
}
.mappen {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
color: #000000;
background-color: #CCCCCC;
}
.sub {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
color: #333333;
background-color: #FFFFFF;
}
.header {
font-family: Arial, Helvetica, sans-serif;
font-size: 11px;
font-weight: bold;
color: #FFFFFF;
background-color: #009DE0;
}
h2 {
margin: 0px;
padding: 0px;
}
a {
color: #000000;
text-decoration: none;
}
a:hover {
color: #990000;
text-decoration: underline;
}
-->
</style>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}
//-->
</script>
</head>
<body bgcolor="#FFFFFF">
<table width="600" border="0" align="center" cellpadding="4" cellspacing="0">
<tr>
<td colspan="3" class="header">Upload voor 't ROC via Barkies website !
<h2><? echo "/". htmlspecialchars($_GET['dir']); ?></h2></td>
</tr>
<tr>
<td class="mappen"> <select class="mappen" name="dirs" onChange="MM_jumpMenu('parent',this,0)">
<option value="#" selected>Kies een ****ing map</option>
<option value="#">-----------------</option>
<option value="index.php">/</option>
<?

for($i = 0; $i < count($data['dir']); $i++)
{
echo " <option value=\"index.php?dir=". $data['dir'][$i] ."\">/". $data['dir'][$i] ."</option><br>\n";
}

?>
</select> </td>
<td colspan="2" align="right" class="mappen"><a href="upload.php?dir=<?=$_GET['dir']; ?>"></a></td>
</tr>
<tr>
<td bgcolor="#FFFFFF"><b>Bestandsnaam</b></td>
<td bgcolor="#FFFFFF" width="70"><b>Grootte</b></td>
<td bgcolor="#FFFFFF" width="70"><b>Datum</b></td>
</tr>
<?

$number = count($data['file']['name']);

if($number == "0")
{
echo " <tr>\n";
echo " <td colspan=\"4\" bgcolor=\"#FFFFFF\" align=\"center\">Deze map is nog helemaal leeg!</td>\n";
echo " </tr>\n";
}
else
{
for($i = 0; $i < $number; $i++)
{
$bgcolor = ($i % 2) ? "#f5f5f5" : "#ffffff";

echo " <tr>\n";
echo " <td bgcolor=\"". $bgcolor ."\" width=\"460\"><a target=\"scherm\" href=\"". htmlspecialchars($data['file']['url'][$i]) ."\">". htmlspecialchars($data['file']['name'][$i]) ."</a></td>\n";
echo " <td bgcolor=\"". $bgcolor ."\" width=\"70\">". size($data['file']['size'][$i]) ."</td>\n";
echo " <td bgcolor=\"". $bgcolor ."\" width=\"70\">". date("d-m-y", $data['file']['date'][$i]) ."</td>\n";
echo " </tr>\n";
}
}

?>
<tr>
<td colspan="3" bgcolor="#FFFFFF" height="6"> </td>
</tr>
<tr>
<td class="mappen"> <select class="mappen" name="dirs" onChange="MM_jumpMenu('parent',this,0)">
<option value="#" selected>Kies een ****ing map</option>
<option value="#">-----------------</option>
<option value="index.php">/</option>
<?

for($i = 0; $i < count($data['dir']); $i++)
{
echo " <option value=\"index.php?dir=". $data['dir'][$i] ."\">/". $data['dir'][$i] ."</option><br>\n";
}

?>
</select> </td>
<td colspan="2" align="right" class="mappen">&nbsp;</td>
</tr>
<tr>
<td height="20" colspan="3" class="sub" align="center">
</td>
</tr>
</table>
</body>
</html>
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan