Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

is_dir hataları

Konu, 'PHP' kısmında RaiST tarafından paylaşıldı.

  1. RaiST

    RaiST Daimi Üye

    Kayıt:
    24 Temmuz 2002
    Mesajlar:
    1,932
    Beğenilen Mesajlar:
    0
    Meslek:
    linuxrocker
    Şehir:
    krynn
    php de bir loop icinde bulunulan directorydeki itemleri tek tek denetliyorum. directory olup olmadıkalrına bakıyorum
    is_dir ile
    fakat 1. directory icin doru sonuc verilirken
    2. directoryden itibaren is_dir directory_deil sonucunu gonderiyor..
    php.nette bunla ilgili bir acıklama gordum.. dediklerini yaptım ama cozum bulamadım..

    - php guzel sey bea eheh :)
     
  2. LoS.ToF

    LoS.ToF Daimi Üye

    Kayıt:
    11 Ağustos 2002
    Mesajlar:
    1,088
    Beğenilen Mesajlar:
    0
    Meslek:
    PHP Developer
    Şehir:
    Antalya
    :) Aslında biraz garib doğru ama ".." zaten bir üst dizin demek değilmi :) onlarıda basit bir if else ile geçebilirsin :)
     
  3. mkarabulut

    mkarabulut Misafir

    Raist ,
    hata veren kodunu bi yapıştırsana...
    Böyle bi şey soöylemek çok zor...
     
  4. RaiST

    RaiST Daimi Üye

    Kayıt:
    24 Temmuz 2002
    Mesajlar:
    1,932
    Beğenilen Mesajlar:
    0
    Meslek:
    linuxrocker
    Şehir:
    krynn
    . bulunulan dizin anlamına gelirken .. bir ust dizindir.. ama benıö child dizinlerde gezmem lazım..

    mkarabulut yarınkodu yapıstırırım.. karsılastım sorun php.net documentation da is_dir bolumunde commentlerde yazıyor ama cozumu bulamadım..
     
  5. mkarabulut

    mkarabulut Misafir

    Anlaşılan recursive bi şeyler deniyon ....
    -Yalnız ben is_dir ile ilgili commentlerde bi şey bulamadım,dediğin gibi...
     
  6. RaiST

    RaiST Daimi Üye

    Kayıt:
    24 Temmuz 2002
    Mesajlar:
    1,932
    Beğenilen Mesajlar:
    0
    Meslek:
    linuxrocker
    Şehir:
    krynn
    http://www.php.net/manual/en/function.is-dir.php

    ewt recursive deniyorum
     
  7. CrazyCat

    CrazyCat Daimi Üye

    Kayıt:
    25 Temmuz 2002
    Mesajlar:
    653
    Beğenilen Mesajlar:
    0
    Meslek:
    lecturer
    Şehir:
    Adana
    Manuele biraz baktım bir çok kullanıcı is_dir için aktif klasör haricinde düzgün sonuçlar elde edilmediğinden şikayetçi
    şöyle bir örnek var işine yarar mı?

    PHP:

    function is_directory($path$folder$to_root) { 
    @
    chdir($path); 
    $return_str = @is_dir($folder); 
    for(
    $i=0$i<$to_root$i++) { 
    $to_root_str .= "../"

    @
    chdir($to_root_str); 
    return 
    $return_str


    sanırım birde sonuç önbellekte depolanıyor.

    clearstatcache ();

    kullanılması ii olabilir (miş)
     
  8. RaiST

    RaiST Daimi Üye

    Kayıt:
    24 Temmuz 2002
    Mesajlar:
    1,932
    Beğenilen Mesajlar:
    0
    Meslek:
    linuxrocker
    Şehir:
    krynn
    clearstatcache (); kullandım sonuc aynı..

    ayrıca aynı sorun sadece is_dir de deil is_filedada mevcut...kotu bir durum
     
  9. RaiST

    RaiST Daimi Üye

    Kayıt:
    24 Temmuz 2002
    Mesajlar:
    1,932
    Beğenilen Mesajlar:
    0
    Meslek:
    linuxrocker
    Şehir:
    krynn
  10. CrazyCat

    CrazyCat Daimi Üye

    Kayıt:
    25 Temmuz 2002
    Mesajlar:
    653
    Beğenilen Mesajlar:
    0
    Meslek:
    lecturer
    Şehir:
    Adana
    Çok ii. Nasıl Çözdün. Her dizine girerek mi sorguladın alt dizinleri?

    gördüğüm kadariyle

    ~20194562/galeri/ dizininden itibaran dizinleri listeliyor..

    merak edip aşağıdaki örneği bir denedim is_dir() bir sorun çıkarmadı bende belki işine yarar. sadece bulunduğun dizini listelliyor. Özyinelemeli bir alg. kullanılarak alt dizinleri de listeler hale getirilebilir.

    Umarım işine yarar diyeceğim ama zeten işini görmüşsüsün :)


    PHP:
    $dizin_adi "/web/amyo/";
    $dosya_url "http://mis/amyo";

    {
    $dizin opendir ($dizin_adi);
    print (
    "<H2>Bu dizindeki alt-dizinler:</H2>\n");
    while ( 
    gettype $bilgi =  readdir$dizin ) ) != boolean ) {
                    if ( 
    is_dir"$dizin_adi/$bilgi) ){
                    print 
    " [Dizin: ] " ;
                    print (
    "<A href=\"$dosya_url/$bilgi\">$bilgi</A><br>\n");
            }
    }
    closedir ($dizin);

    $dizin opendir ($dizin_adi);
    print (
    "<H2>Bu dizindeki Dosyalar:</H2>\n");
    while ( 
    gettype $bilgi =  readdir$dizin ) ) != boolean ) {
                    if ( 
    is_dir"$dizin_adi/$bilgi) ){
                            continue;
                            }
                    print (
    "<A href=\"$dosya_url/$bilgi\">$bilgi</A><br>\n");
    }
    closedir ($dizin);