Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> is_dir, nie działa w podkatalogach
Pogański
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 30.07.2009

Ostrzeżenie: (0%)
-----


Witam. Mam następujący problem. Używając scandir() i is_dir() , nie mogę z poprawnym rezultatem sprawdzić czy dany plik jest katalogiem czy nie. Tzn, mogę, ale tylko dopóki, dopóty index.php w którym znajduje się kod, jest w tym samym folderze ktorego zawartość skanuje, kiedy wchodzę dalej, w których podkatalog, prawidłowe foldery przez is_dir() są oceniane jako FALSE.

W praktyce:

Kod
+Folder .
     +Folder1
         -dokument tekstowy.txt
         -Folder11
         -Folder12
         -Folder13      
      +Folder2
      +Folder3
      -index.php


index.php :
  1. <?php
  2.    
  3.    $dir = &#092;".\";    
  4.    $files = scandir($dir);
  5.    $count = count($files);
  6.    
  7.    for($i = 0; $i != $count; $i++){
  8.        if($files[$i] != &#092;".\" && $files[$i] != \"..\"){
  9.            if(is_dir($files[$i]) == true){        
  10.                echo(&#092;"\".$files[$i].\" IS A DIR
  11. &#092;");
  12.            }else{
  13.                echo(&#092;"\".$files[$i].\" IS NOT A DIR
  14. &#092;");
  15.            }
  16.        }else{}
  17.    }
  18.  
  19. ?>


efekt:
Kod
-------------------------------------------
folder1 IS A DIR
folder2 IS A DIR
folder3 IS A DIR
index.php IS NOT A DIR
-------------------------------------------


Czyli póki co, git! ale gdy zmienię $dir = "."; na $dir = "./folder1";
efekty są następujące:
Kod
--------------------------------------------
dokument tekstowy.txt IS NOT A DIR
folder11 IS NOT A DIR
folder12 IS NOT A DIR
folder13 IS NOT A DIR
--------------------------------------------


Wszystkie foldery to przed chwilą stworzone nowe foldery, dokument tekstowy kontrolnie. Nie mam pojęcia, dlaczego nie daje TRUE dla podkatalogow... może ktoś z was mi coś podpowie. Byłbym bardzo wdzieczny.


Pozdrawiam.
Pogański.
Powód edycji: [Spawnm] Poprawiłem tytuł .
Go to the top of the page
+Quote Post
krowal
post
Post #2





Grupa: Zarejestrowani
Postów: 561
Pomógł: 72
Dołączył: 15.11.2006

Ostrzeżenie: (0%)
-----


Spróbuj tak:
  1. <?php
  2.   error_reporting(E_ALL);
  3.  
  4.   $dir = ".";    
  5.   $files = scandir($dir);
  6.   $count = count($files);
  7.  
  8.   for($i = 0; $i != $count; $i++){
  9.       if($files[$i] != "." && $files[$i] != ".."){
  10.           if(is_dir($dir.'/'.$files[$i]) == true){ // przekazywałeś złą ściężkę funkcji is_dir()
  11.               echo("<b />".$files[$i]."</b> IS A DIR <br />");
  12.           }else{
  13.               echo("<b />".$files[$i]."</b> IS NOT A DIR <br />");
  14.           }
  15.       }else{}
  16.   }
  17.  
  18. ?>


--------------------
Nawet świnka może wejść na drzewo kiedy jest chwalona :)
Go to the top of the page
+Quote Post
skowron-line
post
Post #3





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


Może jestem nudny no ale dlaczego nie użyjesz http://luktom.net/blog/112-iteratory-w-php...rectoryiterator tylko bawisz się w jakieś county
directoryIterator powie Ci wszystko o plikach i folderach które chcesz wyciągnąć z katalogu.

( 5min w innym poście to pisałem. )


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
Spawnm
post
Post #4





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Proszę poprawić tytuł na bardziej sensowny.
Go to the top of the page
+Quote Post
Pogański
post
Post #5





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 30.07.2009

Ostrzeżenie: (0%)
-----


Dlatego że jak piszę coś sam od początku do końca, to zawsze się czegoś uczę, z tego samego powodu nie ściągam nigdy skryptów typu "licznik", i innych tego rodzaju od których roi się aż w sieci. Dużą satysfakcję daje mi, jak po napisaniu całego skryptu/strony, mogę sobie szczerze powiedzieć, że każda literka została tam postawiona przeze mnie, i doskonale rozumiem jak działa.

Dzięki Krowal. Wszystko działa. Błąd jak zwykle banalny.
Go to the top of the page
+Quote Post
skowron-line
post
Post #6





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


Bardzo nas cieszy fakt iż sam piszesz swoje skrypty ale link który ci podałem był do tutka żebyś się nie miotał.
A iteratory są częścią SPL
http://www.php.net/~helly/php/ext/spl/spl_8php.html
tak jak scandir są częścią PHP wersji 5


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
konradg
post
Post #7





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 10.06.2009

Ostrzeżenie: (0%)
-----


Tutaj masz opisane jak używać is_dir
http://www.drzewo-wiedzy.pl/?page=artykul&id=57


--------------------
Linux, Apache, Mysql ,Php (LAMP) :)
http://www.drzewo-wiedzy.pl
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 04:05