Bir metnin karakterlerini Türkçe destekli olarak büyük harfe çevirmek istiyorsanız doğru yazıyı okuyorsunuz demektir. Yazıda karakterleri büyük harfe çevirken yaşayacağınız Türkçe sorunu için küçük bir kaç yöntem sunacağım.
İlk olarak PHP’de karakteleri büyük harf yapmak için strtoupper fonksiyonu kullanmışsınızdır. Ancak Türkçe diline özgü karakterlerde doğru şekilde çevirme işlemi yapmadığını da farkmeniz fazla zaman almamıştır.
strtoupper — Bir dizgenin harflerini büyük harfe çevirir.
Örnek: strtoupper kullanımı
1 2 3 4 5 6 7 8 |
<?php $metin="abc-ğüişçöı"; echo $metin; echo "<br>"; echo strtoupper($metin); |
Çıktı:
1 2 3 4 |
abc-ğüişçöı ABC-ğüIşçöı |
PHP ile Türkçe Karakterleri Büyük Harfe Çevirme
strtoupper fonksiyonunda Türkçe gibi multi bytes karakterlerde çevirme sorunu yaşanmaktadır. PHP’de bu sorunu düzeltmek için multi bytes karakterlere özgü fonksiyonlar mevcuttur. Bu fonksiyonlar mevcut fonksiyona bir mb_ ön eki ile benzer şekilde kullanılır. Multi bytes karakterler için mb_strtoupper yazarak kullanabiliriz.
Örnek: mb_strtoupper kullanımı
1 2 3 4 5 6 7 8 |
<?php $metin="abc-ğüişçöı"; echo $metin; echo "<br>"; echo mb_strtoupper($metin,'UTF8'); |
Çıktı:
1 2 3 4 |
abc-ğüişçöı ABC-ĞÜIŞÇÖI |
Tabi ki bu işlemde tam olarak istediğimizi karşılamayacaktır. Türkçeye özgü i karakteri büyük olarak yazılırken I olarak değiştirilmiştir. Bu sorunun çözümü için ufak bir fonksiyon yazıp önce i harfini büyük İ harfi ile değiştirip ardından tüm karakterleri değiştiren fonksiyonu yazabiliriz.
PHP Büyük Harf Türkçe Karakter
Örnek: Türkçe Karakterleri de çeviren kesin çözüm
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?php function mb_strtoupper_tr($metin){ //diğer karakterler de bu şekilde eklenebilir. $metin=str_replace('i', 'İ', $metin); //kalan karakteleri büyütüp geri çeviriyoruz. return mb_strtoupper($metin,'UTF8'); } $metin="abc-ğüişçöı"; echo $metin; echo "<br>"; echo mb_strtoupper_tr($metin); |
Çıktı:
1 2 3 4 |
abc-ğüişçöı ABC-ĞÜİŞÇÖI |
Add Comment