Telefon numaralırını standart hale getirme Rastgele Parola Yaratma
Kas 09

strtupper ve strtlower için Türkçe probleminin aşılmasına yarayan fonksiyonlar:

function trstrtoupper($metin) {
$metin = strtr($metin, “ğşıöüçi”, “ĞŞIÖÜÇİ”);
return strtoupper($metin);
}

function trstrtolower($metin) {
$metin = strtr($metin, “ĞŞIÖÜÇİ”, “ğşıöüçi”);
return strtolower($metin);
}

EkleBunu EkleBunu


Tek cevap “Türkçe upper ve lower fonksiyonları”

  1. Mehmet Gürevin :

    Altan merhaba;

    Tüm işlerinde utf-8 kullanan arkadaşlar için de ben bir ekleme yapmak istedim.

    PHP dosyanız utf-8 olarak kaydedilmişse dosya üzerindeki $degisken=’ağaç’ gibi tanımlamalarda ve dışarıdan gelen utf-8 kodlanmış veride substr($değişken, 1, 1) == ‘ğ’ değildir :)

    Nedeni ise basit, utf-8′has olan karakterler yani 255 karakterlik ansi ascii listesinde olmayan karakterler bellekte iki byte kaplamaktadır ve substr fonksiyonu iki bytelık yumuşak g harfinin yalnızca ilk byteını almaktadır.

    Denemek isterseniz substr($değişken, 1, 2) == ‘ğ’ nin true olduğunu göreceksiniz.

    Çözüm ise şimdilik multibyte string modülünü(mbstring) kullanmaktan geçiyor.

    Karakter katarı küçültmek yada büyütmek için ben kendi kütüphaneme şöle bişi yazmıştım.

    function toLower($text){
    return(mb_convert_case(str_replace(’I', ‘ı’, $text), MB_CASE_LOWER, ‘UTF-8′));
    }

    function toUpper($text){
    return(mb_convert_case(str_replace(’i', ‘İ’, $text), MB_CASE_UPPER, ‘UTF-8′));
    }

    str_replace ise i/I uyuşmazlığı yüzünden utf-8 de olsa bölgesel kodlama belirtilmediği sürece gerekli.

    Çözüm şimdilik bu demiştim, beni PHP 6 ile gelen utf desteği sayesinde türkçe değişken isimleri kullanmaktan çok string işlemlerinde mbstring’e ihtiyaç kalmaması sevindiriyor.

Cevap yaz