23-04-2024 11:10
26-07-2023 13:25
15-11-2023 14:51
12-07-2023 16:35
PHP'de yazıları büyük-küçük harfe çevirmek için strtolower() ve strtoupper() kullanılıyor.
Ancak ne yazık ki, bu kullanım türkçe karakterlerin bazılarında sorun çıkarıyor.
echo strtolower('MERSİN'); // Mersin echo strtolower('ANKARA'); // Ankara echo strtoupper(kayseri'); // KAYSERI echo ucwords('mersinde hava ilık ve çok sıcak'); // Mersinde Hava Ilik ve çok Sıcak
Gördüğünüz gibi, büyük i harfini küçültmüyor, aynı şekilde küçük i harfini büyük ı olarak büyütüyor.
Alternatif olarak multibyte fonksiyonları kullanmayı deneyebiliriz.
echo mb_strtolower('ÇANAKKALE', 'UTF-8'); // çanakkale echo mb_strtolower('İSTANBUL', 'UTF-8'); // i̇stanbul echo mb_strtoupper('istanbul', 'UTF-8'); // ISTANBUL echo mb_convert_case('istanbul çok güzel bir şehir', MB_CASE_TITLE, "UTF-8"); // Istanbul Çok Güzel Bir Şehir
Çanakkale'de işe yaradı, ama büyük istanbul yazısını nasıl dönüştürdüğünü ve küçük i'yi hala büyük I olarak çevirdiğini fark ettiniz mi?
Evet, ne yazık ki bu çözümde işimize yaramadı. Deneyeceğimiz son şey ise çok fazla bilinmeyen Transliterator sınıfı.
echo Transliterator::create('tr-upper')->transliterate('istanbul'); // İSTANBUL echo Transliterator::create('tr-lower')->transliterate('İSTANBUL'); // istanbul echo Transliterator::create('tr-title')->transliterate('istanbul çok güzel bir şehir'); // İstanbul Çok Güzel Bir Şehir
Evet gördüğünüz gibi, işimizi çözdü. Bu sınıf her bir karakteri ASCII'ye dönüştürüyor böylece orjinalliği bozulmuyor. Bu sadece türkçe içinde geçerli değil, standart dışı tüm diller içinde geçerli.
Örneğin rusça moskova anlamına gelen Москва́ ifadesini nasıl çevirebiliriz bir bakalım.
moskova
Москва́
echo Transliterator::create('Any-Latin; Latin-ASCII')->transliterate('Москва́'); // Moskva
Bir başka örnekte arapçadan gelsin. selamun aleyküm anlamına gelen سلمون عليكم ifadesini okunabilir kılalım.
selamun aleyküm
سلمون عليكم
echo Transliterator::create('Any-Latin; Latin-ASCII')->transliterate('سلمون عليكم'); // slmwn ʿlykm
Bir başka örnekte yunancadan gelsin.
echo Transliterator::create('Any-Latin; Latin-ASCII')->transliterate('Ελλάδα'); // Ellada
sınıfla ilgili daha fazla merak ettiğiniz bir şey olursa, aşağıdaki bağlantıya bir gözatın. https://www.php.net/manual/en/class.transliterator.php
Kaynak: https://prototurk.com/makaleler/php-turkce-buyuk-kucuk-harf-cevirme
Kendi özelleştirilmiş stilini belirle
Uygulamanız için mükemmel renk modunu seçin.
Dil yönünüzü değiştirin
Tam ekran modu aç/kapat
Web sitesi için uygun bir menü sistemi seçin
Please enable JavaScript!Bitte aktiviere JavaScript!S'il vous plaît activer JavaScript!Por favor,activa el JavaScript!