webForumDet fria alternativet

Hur listar man endast kataloger?

PHPur PHP

4 svar · 374 visningar · startad av robbanf

Medlem sedan maj 200349 inlägg
Frågan#1

Om jag gör nåt i stil med:

<?php
$dh = opendir($_SERVER['DOCUMENT_ROOT']."/test/");
$fil = readdir($dh);

while ($fil)
{
	echo $fil;
	echo "<br>";
	$fil = readdir($dh);
}

closedir($dh);
?>

så listas alla filer i katalogen "test". Men hur ska man göra för att endast kataloger ska listas, alltså inga filer?
Jag har provat lite med is_file(), is_dir() och filetype(), men jag får inte till det.

/ Robban

Medlem sedan aug. 20002 975 inlägg
#2

Testa det här:

$path = $_SERVER['DOCUMENT_ROOT']."/test/";

if ($handle = opendir($path)) { 

   while (false !== ($file = readdir($handle))) { 

       if ($file != "." && $file != ".." && is_dir($path.$file)) { 
           echo "$file <br>\n"; 
       } 

   } 

   closedir($handle); 

}
Medlem sedan maj 200349 inlägg
#3

Jag får ett parse error på denna rad:

while (false !== ($file = readdir($handle))) {

Tyvärr är jag för dålig på php för att ens förstå vad raden gör. :)

/ Robban

Medlem sedan aug. 20002 975 inlägg
#4

För min del fungerar det utmärkt, och jag ser inget som kan ge parse error.

Kan du visa mer kod, med ett antal rader före och efter ?

Hur ser hela felmeddelandet om parse error ut ?

Någon gång emellanåt när man klipper från en webbsida så får man med dolda tecken som kan ge parse error. Testa med att ta bort eventuella osynliga tecken i slutet avraderna.

Medlem sedan maj 200349 inlägg
#5

argh, så dumt! :) Efter att ha suddat ut osynliga tecken på flera rader så funkar det utmärkt. Tack för tipset!

/ Robban

138 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)