Verzeichniss ausgeben aber nur die ordner ?

Wipeout

Erfahrenes Mitglied
Also folgendes, für meine Bildergalerie möchte ich gerne eine kleine auswahl anbieten, und zwar habe ich ein Verzeichniss Bilder in diesem sind verschiedene unterordner mit den eigentlichen Bildern drin.

nun möchte ich die unterordner ausgeben und als Variable an mein Script übergeben damit das script sich die Bilder rausholt und diese dann ebend anzeigt.

Ich hoffe man versteht was ich meine *grübel*

Gruss

Wipeout
 
PHP:
<?php
$dir = './dir/';

$dp = opendir($dir);
while( $entry = readdir($dp) ) {
  if(is_dir($dir.$entry)) {
	$subdirectories[] = $entry;
  } else continue;
}
closedir($dp);

echo "<pre>";
print_r($subdirectories);
echo "</pre>";
?>

So sollte es gehen.
 
Tag,

Klasse klappt super nun habe ich aber das problem das ich . und .. nicht angezeigt haben möchte.

Habe es mit

PHP:
if ($subdirectories=".") 
{
echo"Das ist kein Verzeichniss";
}

versucht aber irgendwie gibt er mir dann nur 1 aus löl
 
PHP:
while( false !== ($entry = readdir($dp)) ) {
  if(is_dir($dir.$entry) && $entry != '.' && $entry != '..') {
    $subdirectories[] = $entry;
  } else continue;
}

So vielleicht?
 
Zuletzt bearbeitet:
Hallo,

wollte nur noch anmerken das der Code zum Auslesen nach PHP.net nicht ganz optimal ist. Ich hatte uch diverse Probleme mit der Variante, welche ich aber mit der Aktuellen gelöst habe.

siehe http://www.php.net/manual/de/function.opendir.php

PHP:
<?php
$dir = "/etc/php5/";

// Öffnen eines bekannten Verzeichnisses und danach seinen Inhalt einlesen
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
            echo "filename: $file : filetype: " . filetype($dir . $file) . "\n";
        }
        closedir($dh);
    }
}
?>
 
Sorry, mein Fehler...

Ich hab natürlich nicht damit gerechnet, dass Leute ihre Ordner "false" oder "0" nennen ;)
 
Ich danke euch nu klappt es so wie ich das möchte ;)

Hab das nun so gelöst ;)

PHP:
<table width=100%>
<tr>
<td>Bildergalerien auf dieser Seite</td></tr>
<?
$verzeichnis=opendir($bildverz);
while($file=readdir($verzeichnis))
{
if(is_dir($bildverz."/".$file) && $file != '.' && $file != '..' && $file!= 'thumbs')
{
echo"<tr><td>";
echo"<a href='index.php?seite=bildgal/lesen&uverz=$file' target=_self>$file</a><br></td>\n";
}
}
closedir($verzeichnis);
?>
</table>
 
Änder diese Zeile
PHP:
while($file=readdir($verzeichnis))
in
PHP:
while( ($file = readdir($verzeichnis) !== false)

damit Dateinamen wie "false", "0" oder "null" das Skript nicht vorzeitig beenden können.
 
danke für den tip mach ich doch glatt und sofort ;)

P.S. habs nun geändert aber nun gibt er mir nix mehr aus ;)
 
Zuletzt bearbeitet:
PHP:
<table width=100%>
<tr>
<td>Bildergalerien auf dieser Seite</td></tr>
<?php
$bildverzeichnis = './rcmail/';
$verzeichnis=opendir($bildverzeichnis);
while( ($file=readdir($verzeichnis)) !== false)
{
if(is_dir($bildverzeichnis . $file) && $file != '.' && $file != '..' && $file!= 'thumbs')
{
echo"<tr><td>";
echo"<a href='index.php?seite=bildgal/lesen&uverz=$file' target=_self>$file</a><br></td>\n";
}
}
closedir($verzeichnis);
?>
</table>

Funktioniert bei mir ohne Probleme.
 
Zurück