scandir() "exclude"

max26

Grünschnabel
Hallo,

Ich habe folgendes Problem:
Ich habe xampp installiiert und will als Startseite auf 'localhost' eine php-Datei erstellen, die nur die Ordner anzeigt.
Alles anzeigen funktioniert,
doch nur die Ordner nicht.
Ich habe es vergeblich mit if-Abfragen probiert, aber ohne erfolg.

Hat jemand einen Vorschlag.
-----------------------------------------------
in C:\xampp\htdocs\ befindet sich :
index.php
.htaccess
404.php
ordner:
mysqltest
tests


index.php :
PHP:
<?php
$dir = "/xampp/htdocs/";
$file  = scandir($dir);
 
            
                      
?>



      
<body bgcolor="#000000">
<font size="4" face="Arial Black" color="#00FF00">
<ul>  

<li>     <a href="http://www.google.de/">    <font color="#00FF00">     www.Google.de     </font>        </a>      </li>
<li>     <a href="<?php echo $file[0];  ?>">      <font color="#00FF00"><?php  echo $file[0];   ?></font>   </a>       </li>
<li>     <a href="<?php echo $file[1];  ?>">      <font color="#00FF00"><?php  echo $file[1];  ?></font>   </a>       </li>
<li>     <a href="<?php echo $file[2];  ?>">      <font color="#00FF00"><?php echo $file[2];   ?></font>   </a>       </li>
<li>     <a href="<?php echo $file[3];  ?>">      <font color="#00FF00"><?php echo $file[3];   ?></font>   </a>       </li>
<li>     <a href="<?php echo $file[4];  ?>">      <font color="#00FF00"><?php echo $file[4];   ?></font>   </a>       </li>
<li>     <a href="<?php echo $file[5];  ?>">      <font color="#00FF00"><?php echo $file[5];   ?></font>   </a>       </li>
<li>     <a href="<?php echo $file[6];  ?>">      <font color="#00FF00"><?php echo $file[6];   ?></font>   </a>       </li>
<li>     <a href="<?php echo $file[7];  ?>">      <font color="#00FF00"><?php echo $file[7];   ?></font>   </a>       </li>
<li>     <a href="<?php echo $file[8];  ?>">      <font color="#00FF00"><?php echo $file[8];   ?></font>   </a>       </li>
<li>     <a href="<?php echo $file[9];  ?>">      <font color="#00FF00"><?php echo $file[9];   ?></font>   </a>       </li>
<li>     <a href="<?php echo $file[10];  ?>">      <font color="#00FF00"><?php echo $file[10];   ?></font>   </a>       </li>
<li>     <a href="<?php echo $file[11];  ?>">      <font color="#00FF00"><?php echo $file[11];   ?></font>   </a>       </li>
<li>     <a href="<?php echo $file[12];  ?>">      <font color="#00FF00"><?php echo $file[12];   ?></font>   </a>       </li>
<li>     <a href="<?php echo $file[13];  ?>">      <font color="#00FF00"><?php echo $file[13];   ?></font>   </a>       </li>
<li>     <a href="<?php echo $file[14];  ?>">      <font color="#00FF00"><?php echo $file[14];   ?></font>   </a>       </li>
<li>     <a href="<?php echo $file[15];  ?>">      <font color="#00FF00"><?php echo $file[15];   ?></font>   </a>       </li>
<li>     <a href="<?php echo $file[16];  ?>">      <font color="#00FF00"><?php echo $file[16];   ?></font>   </a>       </li>
<li>     <a href="<?php echo $file[17];  ?>">      <font color="#00FF00"><?php echo $file[17];   ?></font>   </a>       </li>
<li>     <a href="<?php echo $file[18];  ?>">      <font color="#00FF00"><?php echo $file[18];   ?></font>   </a>       </li>

<li>


</font></ul>



</html>

Ausgabe:
index.php
.htaccess
404.php
ordner:
mysqltest
tests
 
Nach scandir sind ja alle Dateien und Ordner im array $files. Dann kannst du über eine for-Schleife alle Elemente durchlaufen und mit is_dir() prüfen, obs ein Ordner ist:
PHP:
<body bgcolor="#000000">
<font size="4" face="Arial Black" color="#00FF00">
<ul> 

<?php
$dir = "/xampp/htdocs/";
$files = scandir($dir); 

for ($i=0; $i<sizeof($files); $i++) {
    if (is_dir($files[$i]) and $files[$i]!="." and $files[$i]!="..") {
       echo '<li><a href="'.$files[$i].'"><font color="#00FF00">'.$files[$i].'</font></a></li>';
}
?>

</font></ul>
</html>
 
Nicht dass ich nicht dankbar für jede Hilfe bin,
aber diesem Skript fehlt '}'.
Wenn man sie einfügt erhält man trotzdem nur eine schwarze Seite.

Suche weiter nach Hilfe
 
OK, ich habe eine schließende Klammer vergessen. Wenn ich die einfüge geht das Script bei mir aber einwandfrei.
Stimmt was mit dem Ordner nicht?
Leg das Script doch einfach mal direkt in den htdocs Ordner und ändere $dir in "./".
 
Sorry, war nicht böse gemeint. Bin nur sehr verzweifelt GEWESEN.


Die Lösung:
Die Pfad-Angabe unter Windows(Ich).
Unter Linux(Du) gehts wie du beschrieben hast.

Der Windows-Code:
PHP:
<body bgcolor="#000000">
<font size="4" face="Arial Black" color="#00FF00"> 
<ul>  
<li><a href="   "><font color="#00FF00">   </font></a></li>



<?php
$dir = "c:/xampp/htdocs/";
$files = scandir($dir);
$i=0;
do{
$i++;


if (is_dir($dir.$files[$i])and $files[$i]!="." and $files[$i]!="..") {
       echo '<li><a href="'.$files[$i].'"><font color="#00FF00">'.$files[$i].'</font></a></li>';
                         }


}while($i<18);




?>

</font></ul>
 
Zuletzt bearbeitet:
Zurück