---
title: "Lista filer i kat. m. länkar t. dem."
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/50337-lista-filer-i-kat-m-länkar-t-dem"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Nilson"
published: "2002-08-14T20:24:35.000Z"
updated: "2002-08-15T20:20:12.000Z"
replies: 15
views: 421
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/50337-lista-filer-i-kat-m-länkar-t-dem"
---

# Lista filer i kat. m. länkar t. dem.

## #1 — Nilson, 2002-08-14T20:24Z

jag skulle vilja kunna designa sidan man får när man gör en .htaccess-fil med Options +Indexes

Hur skulle motsvarande sak kunna uppnås med några rader php där man kan designa sidan själv?

Permalänk: https://www.webforum.nu/p/50337

## #2 — Nilson, 2002-08-14T23:28Z

jag har funnit att man kan lösa det på följande sätt. men hur blir man av med ./ och ../ och index.php
(se <http://www.wasted.org/hultsfred>)

```
<?php 
$site_name="Directory Browser"; 
$dir_path="/home/httpd/vhosts/wasted.org/httpdocs/"; 
$dir_url="hultsfred/"; 
?> 
<html> 
<head> 
<title>Directory List</title> 
</head> 
<body> 
<h1>Directory Listing for <?php echo $site_name; ?></h1> 
<p> 
<?php 
$dir=opendir($dir_path); 
while($file=readdir($dir)) 
{ 
echo"<a href=\"".$dir_url.$file."\" target=\"blank\">$file</a><br>\n"; 
} 
closedir($dir); 
?> 
</body> 
</html>
```

Permalänk: https://www.webforum.nu/p/753867

## #3 — Nilson, 2002-08-15T10:53Z

Är det verkligen inte någon som kan det här? :q

Permalänk: https://www.webforum.nu/p/754067

## #4 — SPiN, 2002-08-15T11:01Z

```
while($file=readdir($dir)) 
{ 
echo"<a href=\"".$dir_url.$file."\" target=\"blank\">$file</a><br>\n"; 
}
```

\>\>

```
while($file=readdir($dir)) 
{ 
if( $file != "./" || $file != ".\\" || $file != "../" || $file != "..\\" || $file != "index.php" ) {
     echo"<a href=\"".$dir_url.$file."\" target=\"blank\">$file</a><br>\n"; 
}
}
```

Bör fungera.

Permalänk: https://www.webforum.nu/p/754078

## #5 — Nilson, 2002-08-15T11:59Z

Det blev precis om innan bara att en del filer hoppade upp/ner i listan. Jag blir galen på det här snart!  x(

Permalänk: https://www.webforum.nu/p/754113

## #6 — SPiN, 2002-08-15T12:03Z

Nytt försök. Ändrar lite i din loop också, den är fel.

```
while(false !== ( $file=readdir($dir) )) 
{
if( $file != "." && $file != ".." && $file != "index.php" )
     echo"<a href=\"".$dir_url.$file."\" target=\"blank\">$file</a><br>\n"; 
}
```

Var nog för nyvaken när jag skrev förra inlägget. Det här SKA fungera. :)

Permalänk: https://www.webforum.nu/p/754120

## #7 — Nilson, 2002-08-15T12:26Z

Woho! Tack!

(bara en lite grejj. nu öppnar den filen i ett nytt fönster. försökte ändra blank/ till top/ men det fungerade inte för att öppna i samma fönster - någon idé om varför?)

det hemliga receptet blev alltså:

```
<?php 
$site_name="Directory Browser"; 
$dir_path="/home/httpd/vhosts/wasted.org/httpdocs/hultsfred"; 
$dir_url="hultsfred/"; 
?> 
<html> 
<head> 
<title>Directory List</title> 
</head> 
<body> 
<h1>Directory Listing for <?php echo $site_name; ?></h1> 
<p> 
<?php 
$dir=opendir($dir_path); 
while(false !== ( $file=readdir($dir) ))
{
if( $file != "." && $file != ".." && $file != "index.php" )
     echo"<a href=\"".$file."\" target=\"blank\">$file</a><br>\n";
}
closedir($dir); 
?> 
</body> 
</html>
```

Permalänk: https://www.webforum.nu/p/754137

## #8 — SPiN, 2002-08-15T12:31Z

Jäpp. :)
Jag hade, klantig som jag är, använt mig av eller-operatorn ( \|\| ) istället för och-operatorn ( && ). Och så hade jag ju lagt till lite "slashar", som inte skulle vara där.

Permalänk: https://www.webforum.nu/p/754148

## #9 — Nilson, 2002-08-15T12:46Z

Ok jag fixxade det. för att ändra till att filen öppnar i samma fönster ändrar man 

```
target=\"blank\"
```

 till 

```
target=\"_self\"
```

TACK SPiN!  :h

Permalänk: https://www.webforum.nu/p/754163

## #10 — Nilson, 2002-08-15T15:10Z

Listan på filer är inte i 100%-ig bokstavsordning. Hur fixxar jag till det?

Permalänk: https://www.webforum.nu/p/754262

## #11 — SPiN, 2002-08-15T15:45Z

Så här lätt:

```
<?php 
$dir=opendir($dir_path); 
while(false !== ( $file=readdir($dir) ))
{
if( $file != "." && $file != ".." && $file != "index.php" )
     $directoryArray[] = $file;
}

sort( $directoryArray );

while( $curElement = array_shift( $directoryArray ) )
     echo"<a href=\"". $curElement ."\" target=\"blank\">" . $curElement . "</a><br>\n";

closedir($dir); 
?>
```

Permalänk: https://www.webforum.nu/p/754276

## #12 — Nilson, 2002-08-15T16:24Z

det fungerade fint. bara det att den favoriserar filer med versaler och listar dem i alfa-ordning, och filer med gemener för efter.
<https://www.wasted.org/hultsfred>

en liten petitess men kan man komma runt det?

(egentligen skulle det vara tufft om man också kunde hämta datum för när filen senast modiferiades och storlek också - men det vet jag inte heller hur man trollar till. (så det mer ser ut som <https://www.wasted.org/arvika> alltså.))

Permalänk: https://www.webforum.nu/p/754302

## #13 — SPiN, 2002-08-15T16:48Z

Hm, jag kan lösa så att du får det i rätt alfabetisk ordning, alltså A räknas som a, men att kolla senaste ändringar, osv. får du lösa själv. :)

```
<?php 
$dir=opendir($dir_path); 
while(false !== ( $file=readdir($dir) ))
{
if( $file != "." && $file != ".." && $file != "index.php" )
     $orgDirectoryArray[] = $file;
     $gemDirectoryArray[] = strtolower( $file );
}

sort( $gemDirectoryArray );

foreach( $gemDirectoryArray as $intIndex => $strFile ) {
     echo "<a href=\"" . $orgDirectoryArray[ $intIndex ] . "\">" . $orgDirectoryArray[ $intIndex ] . "</a><br />";
}

closedir($dir); 
?>
```

Det borde funka.

Permalänk: https://www.webforum.nu/p/754317

## #14 — Nilson, 2002-08-15T20:16Z

det senaste snutten gjorde det hela bara värre. men det spelar ingen roll. tack för all hjälp.  ;)

Permalänk: https://www.webforum.nu/p/754452

## #15 — SPiN, 2002-08-15T20:18Z

Värre? :q
Hur då? :o

Permalänk: https://www.webforum.nu/p/754454

## #16 — SPiN, 2002-08-15T20:20Z

Det kanske inte går att göra så med en foreach(), förresten.

Byt ut:

```
foreach( $gemDirectoryArray as $intIndex => $strFile ) {
     echo "<a href=\"" . $orgDirectoryArray[ $intIndex ] . "\">" . $orgDirectoryArray[ $intIndex ] . "</a><br />";
}
```

Mot:

```
for( $i = 0; $i < count( $gemDirectoryArray ); $i++ ) {
     echo "<a href=\"" . $orgDirectoryArray[ $i ] . "\">" . $orgDirectoryArray[ $i ] . "</a><br />";
}
```

Permalänk: https://www.webforum.nu/p/754455

---

Tråden på webben: https://www.webforum.nu/amne/php/50337-lista-filer-i-kat-m-länkar-t-dem
