olcaytd adlı üyeden alıntı: mesajı görüntüle
Teşekkürler sorunu çözdüm arkadaşlar ihtiyacınız olursa kod aşagıda

function strto($to, $str) {
    if($to == 'lower') {
        return mb_strtolower(str_replace(array('I','Ğ','Ü','Ş','İ','Ö','Ç'), array('ı','ğ','ü','ş','i','ö','ç'), $str), 'utf-8');
    }
    elseif($to == 'upper') {
        return mb_strtoupper(str_replace(array('ı','ğ','ü','ş','i','ö','ç'), array('I','Ğ','Ü','Ş','İ','Ö','Ç'), $str), 'utf-8');
    }
    else { trigger_error('Lütfen geçerli bir strto() parametresi giriniz.', E_USER_ERROR); }
}

Bunların hiçbirisine gerek yoktu aslında. MB_CONVERT_CASE Fonksiyonunda Unicode Desteği Var. Türkçe karakterlerin hiçbirisinde sorun çıkarmaz

MB_CONVERT_CASE(değişken,TO_UPPER)

Şeklinde kullanılır.