---
title: "Lista underkataloger med PHP?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/50989-lista-underkataloger-med-php"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Dr-man"
published: "2002-08-22T10:31:52.000Z"
updated: "2003-08-05T00:33:42.000Z"
replies: 5
views: 433
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/50989-lista-underkataloger-med-php"
---

# Lista underkataloger med PHP?

## #1 — Dr-man, 2002-08-22T10:31Z

Finns det nån möljighet att lista innehållet i underkataloger med PHP eller går det inte?

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

## #2 — Dr-man, 2002-08-22T11:10Z

Hur gör jag så man kan få resultat utskrivet på skärmen med hjälp av koden nedanför? 

```
function list_dir($dirname) 
{ 
    if($dirname[strlen($dirname)-1]!='') 
        $dirname.=''; 
    static $result_array=array();  
    $handle=opendir($dirname); 
    while ($file = readdir($handle)) 
    { 
        if($file=='.'||$file=='..') 
            continue; 
        if(is_dir($dirname.$file)) 
            list_dir($dirname.$file.''); 
        else 
            $result_array[]=$dirname.$file; 
    }    
    closedir($handle); 
    return $result_array; 
    
}
```

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

## #3 — Viktor, 2002-08-22T13:39Z

Jag är ingen expert på PHP så det här är nog inte det bästa sättet men det fungerar.

```php
<?
function list_dir($dirname)
{
    if($dirname[strlen($dirname)-1]!='')
        $dirname.='';
    static $result_array=array();
    $handle=opendir($dirname);
    while ($file = readdir($handle))
    {
        if($file=='.'||$file=='..')
            continue;
        if(is_dir($dirname.$file))
            list_dir($dirname.$file.'');
        else
            $result_array[]=$dirname.$file;
    }
    closedir($handle);
    return $result_array;

}

$dirs=list_dir("d:/");
$i=0;
while($i<sizeof($dirs))
{
	echo $dirs[$i++];
	echo "<br>";
}
?>
```

Har även gjort en lite "snyggare" version som lägger till ett prefix framför fil/katalog namnet så man ser vad som är fil och vad som är katalog och som listar alla filer och kataloger i alla under kataloger, dvs hela vägen ner och inte som skriptet ovan som bara listar 1 nivå ner

```php
<?
function list_dir($dirname, $fileprefix)
{
	if($dirname[strlen($dirname)-1]!='')
		$dirname.='';
	static $result_array=array();
	$handle=opendir($dirname);
	while ($file = readdir($handle))
	{
		if($file=='.'||$file=='..')
			continue;
		if(is_dir($dirname.$fileprefix.$file))
			list_dir($dirname.$fileprefix.$file.'',"/");
		else
			$result_array[]=$dirname.$fileprefix.$file;
	}
	closedir($handle);
	return $result_array;
}

$dirs=list_dir("c:/","");
$i=0;
while($i<sizeof($dirs))
{
	echo $dirs[$i++];
	echo "<br>";
}
?>
```

/Viktor

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

## #4 — Dr-man, 2002-08-22T15:44Z

Fungerar fint! Hur skall man göra ifall man få filstorleken
på filen att synas på skärmen?

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

## #5 — Jörgen HP, 2002-08-22T15:49Z

<http://www.php.net/manual/en/function.filesize.php> :)

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

## #6 — toja, 2003-08-05T00:33Z

vill sig inte...

tjenare...

Fortsätter på denna tråd.. eftersom det är ungefär vad jag håller på med...

Körde Viktors sista kod där...

Den listar alla filer.. utan problem...

men det finns en katalog som heter "hej"...
den visas inte som katalog... utan som bilder... precis som alla andra filer i katalogen...

kolla: <http://festivalen.ung08.nu/dev/test.php>

Jag vill få det att fungera så:

1\. Jag kan lista alla namn på underkatalogerna i en katalog...
2\. Lista alla filer.. och inga kataloger i en viss katalog...

nån..?!

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

---

Tråden på webben: https://www.webforum.nu/amne/php/50989-lista-underkataloger-med-php
