is_dir geht nicht

low-group

Erfahrenes Mitglied
hallo,

die Funktion is_dir() geht irgendwie nicht, es wird immer FILE ausgegeben bei meinem Script:


PHP:
<?php
$handle=opendir ('./test');

while ($file = readdir ($handle))
{
if(is_dir($handle."/".$file) == TRUE)
	{
	echo "<br>DIR:"."$file\n";
	}
else 
	{
	echo "<br>FILE:"."$file\n";
	}	
}
	closedir($handle);

?>

Wo liegt der Fehler?
 
Versuch mal folgendes:
PHP:
<?php
  $d = dir('.');

  while( $entry = $d->read() ) {
    if( $entry == '.' || $entry == '..' ) {
      continue;
    }
    if( is_dir($entry) ) {
      echo "DIR: ".$entry."<br />\n";
    } else {
      echo "FILE: ".$entry."<br />\n";
    }
  }
  $d->close();
?>
 
Entweder so wie Gumbo es schrieb oder um zum eigentlichen Problem zu kommen, du kannst bei is_dir nicht $handle verwenden.
Wenn du nach dem $hande = opendir... mal ein var_dump($handle); machen würdest, dürftest du mit ziemlicher Wahrscheinlichkeit sehen, das $handle eine Ressource ist und nicht den Pfad als text enthält, den du bei opendir() angegeben hast.

Daher einfach folgende Zeile ändern:

PHP:
if(is_dir('./test/'.$file) === TRUE)  //=== TRUE oder einfach ganz weglassen
 
Hmmm entweder per regex oder mit ner eigenen Funktion... weiss auswendig gerade keine die das so macht:

PHP:
if((is_dir($handle."/".$file) == TRUE) && !dbw('deineanfangsbuchstaben',$file) ) 


function dbw($n, $h)
  return (substr($h,0,strlen($n))==$n)?TRUE:FALSE;
 
Zurück