Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] is_dir() oraz is_file() - czasem działa czasem nie
Forum PHP.pl > Forum > Przedszkole
jimmix
Witam smile.gif

Chcę wylistować zawartość katalogu z ozaczniem plikow jako PLIK i katalogów jako KATALOG niniejszym kodem:

Kod
<?php

$katalog='../katalog'; //katalog ktory bedzie przeszukiwany

if ($handle = opendir("$katalog")) {

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

    if (is_file($file)) echo "PLIK ";
    if (is_dir($file)) echo "KATALOG ";
    echo "$file";
    echo "<br />";
    
        if (is_file($file)==FALSE && $file != "." && $file != ".."){
        $tablica["$file"]=NULL;    // tworzymy tablice o wpisach = nazwa katalogu i wartości zero
        }
    }
} else {
    echo "Brak dostępu do katalogu \"$katalog\"";  
}

closedir($handle);

?>



katalog zawiera pliki:

tresc.php

index.php

oraz katalogi:

.przykladowy

.svn

123456

Efektem działania skryptu jest listing:

  1. KATALOG .
  2. KATALOG ..
  3. KATALOG .svn
  4. 123456
  5. PLIK index.php
  6. tresc.php
  7. .przykladowy


Ma ktoś może pojęcie dlaczego katalog 123456, .przykladowy oraz plik tresc.php nie są poprawnie rozróżniane przez funkcje is_dir() oraz is_file() ?

Dodam tylko że na localhost pod krasnalem jak i na serwerze www sprawa ma się identycznie.
ddiceman
Bo nazwy czytasz z jednego katalogu a testujesz inny - powinienes sprawdzac za pomoca
  1. <?php
  2. is_file($katalog.'/'.$file);
  3. is_dir($katalog.'/'.$file);
  4. ?>
jimmix
Dzięki wielkie, oczywiście pomogło smile.gif

Jest może jakiś debugger który pozwalałby na podglądanie wartości zmiennych , ustawianie breakpoint-ów itp. Chciałbym uniknąć problemów takich jak ten w tym temacie - skrypt wykonuje się bez błędów ale wynik jest inny od oczekiwanego heh winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.