Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] skrypt odczytujacy katalogi
Forum PHP.pl > Forum > Przedszkole
gosc
Mam taki oto kod:
Kod
$adres = "/";

  $katalog = opendir($adres);

    while (false !==($dir = readdir($katalog))){

      if ($dir != "." && $dir != ".." && $dir != $dir."_thumb") {
    
          if (is_dir($adres.'/'.$dir)){
        echo $dir;
          
        
            }
    
       }

    }
closedir($katalog);

i nie wiem dlaczego wyswietla mi rowniez katalogi z koncowka _thumb, bo wedlug mnie nie powinien. Co wiecej na innej podstronie mam bardzo podobny kod tylko troche bardziej rozbudowany i dziala bez problemu. Ktos ma jakis pomysl ?
bim2
nie da się dać $dir!=$dir.'thumb' bo to wyjdzie dla katalogu np 'costam_thumb'

if('costam_thumb'!='costam_thumb'.'_thumb')
gosc
moj blad zapomnialem dodac ze w przeszukiwanym katalogu ( czyli tym z ktorego wyswietlam te katalogi ) sa katalogi z koncowka _thumb ktorych nie chce wyswietlic. Np zawartosc tego katalogu to: kat1, kat1_thumb, kat2, kat2_thumb. I wlasnie tych katalogow z koncowka _thumb nie chce wyswietlic dlatego tam powinien wyjsc taki warunek ze jezeli $dir != $dir_dhumb to wejdz do if i spelnij warunek. Tylko ze z jakiegos powodu to nie dziala i w tym caly problem.
Roly
No to może spróbuj tak...

Edit: masakra to wolne jest co przedstawiłeś... Penie zadziała ale zaprzęganie wyrażeń regularnych do takich prostych rzeczy to "lekkie" marnotrawienie czasu i zasobów... winksmiley.jpg

  1. <?php
  2. $adres = "/";
  3.  
  4.  $katalog = opendir($adres);
  5.  
  6.    while (false !==($dir = readdir($katalog))){
  7.  
  8.      if ($dir != "." && $dir != "..") {
  9.       if($dir != $dir."_thumb") {
  10.          if (is_dir($adres.'/'.$dir)){
  11.           echo $dir;
  12.          }
  13.       }
  14.     }
  15.    }
  16. closedir($katalog);
  17. ?>
erix
~Roly, Twój kod logicznie niczym nie różni się od pierwotnego... Tylko inny zapis.

  1. <?php
  2. $adres = "/";
  3.  
  4. $katalog = opendir($adres);
  5.  
  6.   while (false !==($dir = readdir($katalog))){
  7.  
  8.     if ($dir != "." && $dir != ".." && strrpos($dir, '_thumb')!==false) {
  9.         if (is_dir($adres.'/'.$dir)){
  10.          echo $dir;
  11.         }
  12.    }
  13.   }
  14. closedir($katalog);
  15. ?>
Roly
Cytat(erix @ 24.11.2008, 20:38:52 ) *
~Roly, Twój kod logicznie niczym nie różni się od pierwotnego... Tylko inny zapis.


No i właśnie oto chodzi że się logicznie różni i działa...

  1. <?php
  2. if ($dir != "." && $dir != ".." && $dir != $dir."_thumb")
  3. ?>


To nie zwrorci nigdy logicznej jednynki....
erix
Cytat
To nie zwrorci nigdy logicznej jednynki....

Fakt, zapędziłem się. winksmiley.jpg

Cytat
To nie zwrorci nigdy logicznej jednynki....

Zwróci, ale akurat na odwrót - dla plików nie zawierających _thumbs.
mike
Wywalam posty gościa gox oraz jego obecność z fragmentów innych wypowiedzi.
Proszę raportować jego obecność. Będzie leciał do kosza.
gosc
erix - twój kod to jest właśnie coś o czym myślałem, dzięki za zaglądniecie i odp. w temacie. Jedna tylko rzecz jest do poprawy, żeby zwracało katalogi bez _thumb należy z tego fragmentu strrpos($dir, '_thumb')!==false pozbyć się znaku ' ! ' i wtedy wszystko gra. Dzięki raz jeszcze.
erix
PS. Zobacz notkę w manualu dla strpos" title="Zobacz w manualu PHP" target="_manual, pilnuj operatora.
gosc
No tak 0 lub "", mysle ze === powinno zalatwic sprawe, dzieki raz jeszcze.
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.