Şimdi Ara

rename() fonksiyonu Türkçe karakter sorunu !

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir (1 Mobil) - 1 Masaüstü1 Mobil
5 sn
4
Cevap
0
Favori
1.134
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Arkadaşlar ne yaptıysam olmadı bü türlü ! bi sürü resim var sitede ve türkçe karakterli olan resimler görünmüyor. Bu sorunu aşmam için türkçe karakterli dosya kullanmamam gerekli artık. Fakat eski dosyalarımı yeniden isimlendirmem gerekli. Local hostumda denememe rağmen yapamadım bi türlü ! Tüm karakterleri değiştiriyor istediğim gibi ama Türkçe karakterleri es geçiyor, hiç bir işlem yapmıyor kod ! Hatada vermiyor işlem başarılı yani.. Bunu nasıl aşabilirim. Windows işletim sistemi ile alakalı olabilir mi ? Windowsum ingilizce çünkü !

    <?php
    header("content-type:text/html; charset=utf-8");

    define('dizin', 'C:\xampp\htdocs\degistir/data/');

    if($handle = opendir( dizin)) {
    while (false !== ($file = readdir($handle))) {

    $bul = array('Ç', 'Ş', 'Ğ', 'Ü', 'İ', 'Ö', 'ç', 'ş', 'ğ', 'ü', 'ö', 'ı', ' ', '-');
    $yap = array('c', 's', 'g', 'u', 'i', 'o', 'c', 's', 'g', 'u', 'o', 'i', '_', '_');
    $yeni_isim = str_replace($bul, $yap, html_entity_decode($file, ENT_QUOTES, 'UTF-8'));
    $yeni_isim = strtolower($yeni_isim);

    if($file !='.' && $file != '..') {

    if(rename( dizin. $file, dizin. $yeni_isim )){
    echo "<b>$file > <font color='#009900'>$yeni_isim - Dosya adı değiştirildi.</font></b><br />";
    }
    else
    {
    echo "<b>$file</b> Dosya adı değiştirilemedi <br />";
    }

    }
    }
    closedir($handle);
    }

    ?>



    < Bu mesaj bu kişi tarafından değiştirildi Byrak85 -- 29 Ekim 2013; 16:52:04 >







  • Neden bukadar zahmete girip birton kod ile uğraşıyorsunuz anlamıyorum ki.


    function turkceyap($deger) {
    $turkce=array("ş", "Ş", "ı", "(", ")", "‘", "ü", "Ü", "ö", "Ö", "ç", "Ç", " ", "/", "*", "?", "ş", "Ş", "ı", "ğ", "Ğ", "İ", "ö", "Ö", "Ç", "ç", "ü", "Ü");
    $duzgun=array("s", "S", "i", "", "", "", "u", "U", "o", "O", "c", "C", "-", "-", "-", "", "s", "S", "i", "g", "G", "I", "o", "O", "C", "c", "u", "U");
    $deger=str_replace($turkce,$duzgun,$deger);
    $deger = preg_replace("@[^A-Za-z0-9-_]+@i","",$deger);
    return $deger; }

    Bu kodu resimleri çektiğin dosyan içerisinde kullan. resimleri çektiğin fonksiyon adın nedir mesela


    $sql = mysql_query("SELECT * FROM resimler WHERE id = '".$_GET['id']."'");
    $resimcek = mysql_fetch_assoc($sql);


    <img src='<?=$resimcek?>'>

    Boyle birşeyin var mesela değil mi. şimdi sen nasıl yapacaksın. yukarıdaki kodda $deger yazan yere $resimcek yazacaksın cekilen verilerde tr karakter var ise bu fonksiyo onu otomatik olarak düzeltecektir.

    Bukadar basit bir kod.

    Kolay gelsin.



    < Bu mesaj bu kişi tarafından değiştirildi aksoydesign -- 2 Kasım 2013; 2:40:57 >




  • Veritabanıyla işim yok onları zaten sorunsuz şekilde hallettim...

    Benim işim klasör içinde daha önce yüklenmiş binlerce ürün resmiyle... içerisinde türkçe karakterli olan bi ton resim var
    Klasörün içine index.php atıyorum ve çalıştırıyorum hepsi bu. Kendi localimde dosya isimlerine müdahale etmiyor Türkçe karakterleri görmüyor soru işareti çıkıyor karakter yerine...

    Birde şu kodu kullandığım zaman türkçe karakterleri komple kaldırıyor.

    $deger = preg_replace("@[^A-Za-z0-9-_]+@i","",$deger);

    sorunumu şu şekilde hallettim. Resim klasörümü FTPden linux sunucum üzerine taşıdım. O şekilde çalışıtırınca bütün resimleri türkçe karakterlerden temizleyebildim tam istediğim gibi oldu. Sorun bu işlemi kendi masaüstümde veya xampp localimde yapamamam ! Kodsal bir sıkıntı yok sizin yazdığınızla benim yazdığım aynı şey zaten bir tek fonsiyon koymuşsunuz o kadar tek seferlik işlem için fonksiyon koymadım ben gerek yoktu ondan...

    Teşekkür ederim yine :))




  • Bir iç bağı (dosya,resim vs) browserda görüntülerken sistem ön tanımlı encoding tipi utf-8 dir.
    Siz browser kodlamasını latin guruba adreside türkçe yazarsanız ziyaretçi o dosyaya ulaşamayacaktır.
    Resimlere verdiğiniz adlar önemli değildir(kodlama açısından) ama bir dosya adını başka bir prosesden geçirirseniz bu ilgili prosesin o ada ne yapacağı meçhuldür.
    Sorun sizin php motorunuzdaki encodingden kaynaklanmaktadır. Apache gayet masum bir şekilde tüm dillerdeki dosya adlarını desteklemektedir.
    Örnek:http://digan.net/a%C5%9Fa%C4%9F%C4%B1%20ayran%C3%A7%C4%B1.bmp
    kodlanmış hali üstte
    ham hali aşağıda
    http://digan.net/aşağı ayrançı.bmp




  • Yapay Zeka’dan İlgili Konular
    RSS Türkçe Karakter Sorunu
    18 yıl önce açıldı
    PHP türkçe karakter problemi
    18 yıl önce açıldı
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.