Hey mensen...

Via het volgende scriptje lees ik een bepaalde directory uit en geef ik de files weer. Ik probeer onderscheid te maken tussen mappen en afbeeldingen.
Dat lukt allemaal. De mappen en afbeeldingen worden mooi weergegeven, maar niet op alfabetische volgorde...iemand de oplossing?

<?

function readDirs($dir){
$current_dir = opendir($dir);
$i = 0;
while($entryname = readdir($current_dir))
{
$i ^= 1;
if($entryname != "." and $entryname!=".." and is_dir($_SERVER['DOCUMENT_ROOT'].'/bbs/docs/'.$entryname))
{
echo "<tr class=\"bg$i\">
<td class=\"overzichten_content_td\" style=\"padding-left: 2px;\">
<img src=\"images/folder.png\" alt=\"bekijken\"\">&nbsp;";
echo $entryname;
echo "</td><td class=\"overzichten_content_tdlast\"><a href=\"?do=view&id=$id\"><img src=\"images/magnify.png\" alt=\"bekijken\"\"></a>
<a href=\"?do=edit&id=$id\"><img src=\"images/edit.gif\" alt=\"wijzigen\"\"></a>
<a href=\"?do=delete&id=$id\"><img src=\"images/delete.gif\" alt=\"wijzigen\"></a></td>
</tr>\r\n";
}
}
closedir($current_dir);

$current_dir = opendir($dir);
$i = 0;
while($entryname = readdir($current_dir))
{
$i ^= 1;
if($entryname != "." and $entryname!=".." and !is_dir($_SERVER['DOCUMENT_ROOT'].'/bbs/docs/'.$entryname))
{
echo "<tr class=\"bg$i\">
<td class=\"overzichten_content_td\" style=\"padding-left: 2px;\">
<img src=\"images/image.png\" alt=\"bekijken\"\">&nbsp;";
echo $entryname;
echo "</td><td class=\"overzichten_content_tdlast\"><a href=\"?do=view&id=$id\"><img src=\"images/magnify.png\" alt=\"bekijken\"\"></a>
<a href=\"?do=edit&id=$id\"><img src=\"images/edit.gif\" alt=\"wijzigen\"\"></a>
<a href=\"?do=delete&id=$id\"><img src=\"images/delete.gif\" alt=\"wijzigen\"></a></td>
</tr>\r\n";
}
}
closedir($current_dir);
}
?>
Misschien eerst $entryname in een array plaatsen, dan sorteren met sort() en dan weer uitlezen met een foreach loop?
Bij mij doet hij het wel automatisch ga me afvragen waar dat dan aan licht?
Als ik ze in een array stop krijg ik stappen in mijn keys...waarschijnlijk door die is_dir.

want er zitten ook afbeeldingen tussen. Dus de keys van de mappen lopen van 3,4,7,8,9,12

en dan krijg ik lege plekken in mijn array...heel vaag...

Zie onderstaat voorbeeld: Hier heb ik een for loopje die de array uitleest

<?

$current_dir = opendir($dir);
$i = 0;
while($entryname = readdir($current_dir))
{
if($entryname != "." and $entryname!=".." and is_dir($_SERVER['DOCUMENT_ROOT'].'/bbs/docs/'.$entryname))
{
$maps[$i] = $entryname;
}
$i++;
}
closedir($current_dir);

for ($i=0; $i<count($maps); $i++){
echo "<tr class=\"bg$i\">
<td class=\"overzichten_content_td\" style=\"padding-left: 2px;\">
<img src=\"images/folder.png\" alt=\"bekijken\"\">&nbsp;";
echo $maps[$i];
echo "</td><td class=\"overzichten_content_tdlast\"><a href=\"?do=view&id=$id\"><img src=\"images/magnify.png\" alt=\"bekijken\"\"></a>
<a href=\"?do=edit&id=$id\"><img src=\"images/edit.gif\" alt=\"wijzigen\"\"></a>
<a href=\"?do=delete&id=$id\"><img src=\"images/delete.gif\" alt=\"wijzigen\"></a></td>
</tr>\r\n";
}

?>
Als je het zo doet krijg je geen stappen in je keys:
<?php
while($entryname = readdir($current_dir))
{
if($entryname != "." and $entryname!=".." and is_dir($_SERVER['DOCUMENT_ROOT'].'/bbs/docs/'.$entryname))
{
$maps[] = $entryname;
}
}
?>
En daarna gewoon met een foreach loop de array $maps uitlezen.

Reageren