php Türkçe Karakter Dönüştürme
Türkçe karakterli bir kelimeden link yapmaya çalıştığınızda (genellikle .htaccess dosyası ile link formatlama yaparken ihtiyaç duyuluyor) türkçe karakterleri ve gereksiz imlaları değiştirmeniz gerekebilir. Bunun için php’nin strtr() veya str_replace() fonksiyonlarını kullanabilirsiniz.
Fakat veritabanına (benimkisi MySql) kaydederken veya çekerken php bazı türkçe karakterleri algılamıyor bu yüzden karakterleri değiştiremiyor. Benim gibi defalarca yazdığınız kodu inceliyorsunuz ve hiçbir hata olmamasına rağmen Ç harfini C’ye dönüştürüyor ama Ğ’yi G yapmıyor mesela :)
Uzun denemeler sonucunda şöyle bir sonuç buldum:
Veritabanına kaydettikten sonra Mysql ile görüntülediğimde “ÐUÞÝ” gibi karakterler gösteriyordu, bende fonksiyonumda bu karakterleri kullanmaya karar verdim ve işe de yaradı.
İşte gerekli işlemi yapan fonksiyon:
function replace_tr($text) {
$noktalama = array(",", ".", ";", ":", "!", "\\",
"'", "&", "%", "@", "\"", "/", "*", "(", ")");
$text=str_replace($noktalama, "", $text);//ÐUÞÝOC - ðuþýoc
$trler = array("Ð", "Ü", "Þ", "Ý", "Ö", "Ç", "ð", "ü", "þ",
"ý", "ö", "ç", " ");
$engler = array("G", "U", "S", "I", "O", "C", "g", "u", "s",
"i", "o", "c", "-");
$text=str_replace($trler, $engler, $text);return $text;
}
echo replace_tr("Ganim'in Türkçe karakter çözümü!");
>>Ganimin-Turkce-karakter-cozumu
Noktalamaları kaldırır ve Türkçe karakterleri inglizce alfabesindeki karşılığına dönüştürür.
Etiketler: dönüştürme, karakter, php, replace_tr, strtr, str_replace, türkçe