Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]is_dir co nie dokonca dziala
gsk
post
Post #1





Grupa: Zarejestrowani
Postów: 129
Pomógł: 4
Dołączył: 21.02.2004
Skąd: z domu

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


  1. public static function listFiles($dir)
  2. {
  3. if(is_dir($dir)){
  4. $handle = opendir($dir);
  5. while (($file = readdir($handle)) !== false)
  6. {
  7. if(!is_dir($file)){
  8. $files[] = $file;
  9. }
  10. }
  11. closedir($handle);
  12. }
  13. return $files;
  14. }


Napisalem sobie taka prosta funkcje, ktora tworzy mi tablice plikow w katalogu. I pytanie czemu pozniej w tej tablicy mam dostepne rowniez katalogi, jak wyswietlam same pliki.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 16)
CyberDuck_
post
Post #2





Grupa: Zarejestrowani
Postów: 135
Pomógł: 15
Dołączył: 17.08.2009

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


Bo w warunku Masz readdir ... Poczytaj manuala -> readdir .
Tobie raczej przyda sie chyba is_dir .
Go to the top of the page
+Quote Post
gsk
post
Post #3





Grupa: Zarejestrowani
Postów: 129
Pomógł: 4
Dołączył: 21.02.2004
Skąd: z domu

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


w warunku mam is_dir... i sprawdzam nim czy dany plik jest katalogiem jezeli tak to omijam
Go to the top of the page
+Quote Post
cojack
post
Post #4





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


  1. if(!is_dir($file)){
  2. $files[] = $file;
  3. }

zamień na:
  1. if ($file != "." && $file != "..") {
  2. $files[] = $file;
  3. }


nawet w manualu masz taki przykład...

Ten post edytował cojack 20.09.2009, 08:14:32
Go to the top of the page
+Quote Post
gsk
post
Post #5





Grupa: Zarejestrowani
Postów: 129
Pomógł: 4
Dołączył: 21.02.2004
Skąd: z domu

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


is_dir usuwa mi '.' i '..' tylko o dziwo nie usuwa katalogu ktory tam jest oprocz plikow...
Go to the top of the page
+Quote Post
cojack
post
Post #6





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Bo ten katalog jest directory, ha! Czyli ścieżką, lepiej sprawdzać is_file.
Go to the top of the page
+Quote Post
gsk
post
Post #7





Grupa: Zarejestrowani
Postów: 129
Pomógł: 4
Dołączył: 21.02.2004
Skąd: z domu

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


nie rozumiesz... (IMG:style_emoticons/default/smile.gif) heheh... mam katalog x, ktory jest sciezka w nim mam pliki oraz jeden katalog y.. (IMG:style_emoticons/default/smile.gif) teraz uzywam !is_dir i wycina mi tylko . i .. a katalog y zostaje (IMG:style_emoticons/default/smile.gif) pozdrawiam (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
potreb
post
Post #8





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


  1. if ($file != "." && $file != ".." && !is_dir($file)) {


Zainteresuj się lepiej DirectoryIterator
http://blogs.techrepublic.com.com/programm...elopment/?p=417

Ten post edytował potreb 20.09.2009, 13:23:03
Go to the top of the page
+Quote Post
gsk
post
Post #9





Grupa: Zarejestrowani
Postów: 129
Pomógł: 4
Dołączył: 21.02.2004
Skąd: z domu

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


potreb (IMG:style_emoticons/default/smile.gif) jak juz pisalem wyzej (IMG:style_emoticons/default/smile.gif) . i .. sa wycinane przez samo !is_dir (IMG:style_emoticons/default/smile.gif) natomiast to samo !is_dir nie usuwa mi katalogu w tej sciezce (IMG:style_emoticons/default/smile.gif) is_file natomiast wyswietla w tym przypadku tylko jeden plik z calej listy.. dlatego pytam na forum, bo wydaje mi sie to dosyc dziwne (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
potreb
post
Post #10





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


Pokaż jeszcze raz kod i przykład twoich ścieżek.
Go to the top of the page
+Quote Post
cojack
post
Post #11





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


gsk masz rację coś rzeczywiście jest skopane bo u mnie też katalogi łapie...
Go to the top of the page
+Quote Post
potreb
post
Post #12





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


U mnie normalnie działa
  1. <?php
  2. function listFiles($dir)
  3. {
  4. if(is_dir($dir)){
  5. $handle = opendir($dir);
  6. while (($file = readdir($handle)) !== false)
  7. {
  8. if(!is_dir($file)){
  9. $files[] = $file;
  10. }
  11. }
  12. closedir($handle);
  13. }
  14. return $files;
  15. }
  16.  
  17. print_r(listFiles('./'));
  18. ?>
Go to the top of the page
+Quote Post
gsk
post
Post #13





Grupa: Zarejestrowani
Postów: 129
Pomógł: 4
Dołączył: 21.02.2004
Skąd: z domu

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


  1. + katalog x
  2. |---- katalog y
  3. |---- plik1
  4. |---- plik2
  5. |---- plik3

listuje katalog x i oprocz plikow widze katalog y (IMG:style_emoticons/default/smile.gif) juz latwiej nie potrafie, hehehe...
Go to the top of the page
+Quote Post
--nick--
post
Post #14





Goście







podaj pelna sciezke w is_dir
Go to the top of the page
+Quote Post
abort
post
Post #15





Grupa: Zarejestrowani
Postów: 590
Pomógł: 107
Dołączył: 25.10.2011

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


Tak na marginesie: możesz skorzystać z is_file - to Ci złapie na 100% tylko pliki. Bo jak na uniksie trafisz na linka symbolicznego, to warunek !is_dir będzie spełniony (a nie powinien). Dlatego lepiej is_file, bo nie złapie ani linka symbolicznego, ani katalogu.
Go to the top of the page
+Quote Post
qrooel
post
Post #16





Grupa: Zarejestrowani
Postów: 306
Pomógł: 42
Dołączył: 25.03.2010
Skąd: Kraków

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


To było w 2009 roku.
Go to the top of the page
+Quote Post
abort
post
Post #17





Grupa: Zarejestrowani
Postów: 590
Pomógł: 107
Dołączył: 25.10.2011

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


LOL. No cóż, ktoś odświeżył wątek, to i się nabrałem. (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 14.09.2025 - 22:40