mappen sorteren
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?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?
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\"\"> ";
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\"\"> ";
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);
}
?>
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\"\"> ";
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\"\"> ";
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?
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
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?
$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\"\"> ";
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";
}
?>
$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\"\"> ";
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";
}
?>
Code (php)
En daarna gewoon met een foreach loop de array $maps uitlezen.