Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
is_dir() und is_file() unter Windows [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
is_dir() und is_file() unter Windows


 
MTCook
21-02-2004, 10:17 
 
Habe eine PHP Windows Installation.

Versuche aus einem Verzeichnis nur die darin enthaltenen Verzeichnise auszulesen.
Doch ich erhalte immer nur falsche Ergebnisse!
Mit is_dir() wird mir nur "." und "..." ausgegeben es sind aber weitere Verzeichnise vorhanden.

Mit !is_file() bekomme ich Verzeichnise und teilweise Dateien.

Ich habe mit filetype() mir mal ausgeben lassen was für Typen in dem Verzeichnis sind.

Bei einer Datei von 3 Dateien zeigt er an das es ein "file" ist bei den anderen nicht. Von den Verzeichnisen kann er nur "." und ".." als "dir" erkennen die anderen Verzeichnise erkennt er nicht!

So habe ich es bis jetzt:

while($dir = readdir($sub_mappen)){
// Hier ist mein Problem
if (!is_file($dir) && $dir != "." && $dir != ".."){
echo filetype($dir);
echo $dir.'<br>
}
// Problem Ende
}


Gibt es eine andere Möglichkeit nur die Verzeichnise auszulesen?

Danke schon mal für eure Antworten.

 
Titus
21-02-2004, 11:36 
 
rein theoretisch:
is_dir($dir) == file_exists("$dir/.") == is_dir("$dir/.")

 
toshi
21-02-2004, 11:45 
 
versuch es mal hiermit:


function getDirContent($sDir)
{
$aFile = array();
if (file_exists($sDir))
{
$hDir = @opendir($sDir);
while ($file = @readdir($hDir))
$aFile[] = $file;
@closedir($hDir);
}
else
print('File $sDir fehlt / konnte nicht geöffnet werden');
return $aFile;
}//getDirContent()...

function getFiles($sDir, $iLastcheck)
{
// echo $iLastcheck;
$aFile = $this->getDirContent($sDir);
foreach($aFile as $file2)
{
//ignore if filename '.' or '..'
if ($file2 != "." && $file2 != "..")
{
if(is_dir($sDir ."/". $file2))
// echo $file2." - dir<br>";
$aAllFiles[] = getFiles($sDir ."/". $file2, $iLastcheck);
elseif(is_file($sDir ."/". $file2))
{
if(filemtime($sDir ."/". $file2) >= $iLastcheck)
$aAllFiles[] = $sDir ."/". $file2;
}
}
}
// echo count($aAllFiles)."<br>";
return $aAllFiles;
}//getFiles()...


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:16 Uhr.