• 12-04-2010, 12:13:13
    #1
    Merhaba...

    Bir dizin altında farklı farklı dizinlerde bulunan ve türkçe karakterler ile kaydedilmiş dosya isimlerindeki türkçe karakterleri nasıl değiştirebilirim...

    Not: Dizinin altındaki tüm dizinler içindeki dosyaları değiştirmek gerekiyor.

    Teşekkürler...
  • 12-04-2010, 12:25:33
    #2
    Üyeliği durduruldu
    Merhaba php yi öğrenirken tuttuğum dökümanlarım hala duruyor iyiki tutuyorum tekrar tekrar yazma zahmetinden arınıyorum umarım işni görür SAYGILARIMDA

    function trsil($linklink) {
    $turkce=array('ç','ğ','ı','İ','ö','ş','ü',' ','S','A','B','C','Ç','D','E','F','G','Ğ','H','I','İ','J','K','L','M','N','O','Ö','P','R','S','Ş','T','U','Ü','W','V','Y','Z','/',':','[',']',')','(','\'','\\','.','?');
    	$ingilizce=array('c','g','i','i','o','s','u','-','s','a','b','c','c','d','e','f','g','g','h','i','i','j','k','l','m','n','o','o','p','r','s','s','t','u','u','w','v','y','z','-','-','','','','','_','','','');
    
    $linklink = str_replace($turkce,$ingilizce,$linklink);
    return strtolower($linklink);
    }
    function dizinara($dizin) {
        if ($handle = opendir($dizin)) {
    
            while (false !== ($icerik = readdir($handle))) {
    
                echo "İsim: ".$icerik;
    
                if(is_dir($icerik)) {
                    if ($icerik != "." && $icerik != "..") {
                        echo " - Tür: Dizin ";
                        dizinara($icerik);
                    }
                } else  {
                    echo " - Tür: Dosya ";
    
                    $isim_parca = explode('.',$icerik);
                    $parca_say = count($isim_parca) -1;
                    $dosya_uzanti = $isim_parca[$parca_say];
    
                    for ($i=0; $i<$parca_say; $i++) {
                        $dosya_ad .= $isim_parca[$i];
                    }
    
                    
    
                    $dosya_yeni_ad = trsil($dosya_ad).".".$dosya_uzanti;
    
                    $ad_degis = rename("$dizin/$icerik", "$dizin/$dosya_yeni_ad");
                    if($ad_degis) {
                        $mesaj = " - Durum: Tamamlandı.\n";
                    } else {
                        $mesaj = " - Durum: Tamamlanamadı!\n";
                    }
                    echo " - Eski ad: $icerik - Yeni ad: ".$dosya_yeni_ad." - Durum: $mesaj \r\n";
    
                    $dosya_ad = "";
    
                }
            }
            closedir($handle);
        }
    }
    
    dizinara("/www/klasorunun_ismi");
  • 12-04-2010, 14:57:44
    #3
    Teşekkür ederim. Tam aradığım şey...
  • 12-04-2010, 20:41:45
    #4
    Üyeliği durduruldu
    replay147 adlı üyeden alıntı: mesajı görüntüle
    Teşekkür ederim. Tam aradığım şey...
    İşinizi görmesine sevindim