PHP ile Büyük Harfe Çevirme
Web uygulamalarında kullanıcıdan alınan metinleri standartlaştırmak için büyük harfe çevirme oldukça yaygın bir ihtiyaçtır. Ancak, PHP’de bu işlem yapılırken özellikle Türkçe karakterler (ı, i, ğ, ü, ş, ö, ç) doğru şekilde işlenmediğinde hatalı sonuçlar ortaya çıkabilir.
Bu yazıda, PHP ile büyük harfe çevirme işlemini Türkçe karakter desteğiyle birlikte nasıl doğru ve profesyonel şekilde yapabileceğinizi ele alacağız.

📌 Sorunun Temeli: strtoupper()
Fonksiyonu
PHP’nin yerleşik strtoupper()
fonksiyonu yalnızca ASCII karakterler üzerinde doğru çalışır. Çok baytlı (multibyte) karakterleri dönüştürürken mbstring
desteğine sahip değildir.
echo strtoupper("ışık"); // Çıktı: ISIK ❌
Yukarıdaki örnekte, ı
harfi büyük harfe çevrilirken I
olur, ancak Türkçede doğru karşılığı İ
(İ) olmalıdır. Bu durumda yanlış veri kaydına veya görsel hatalara neden olabilir.
✅ Doğru Yaklaşım: mb_strtoupper()
mb_strtoupper()
Fonksiyonu
mb_strtoupper()
fonksiyonu, çok baytlı karakterleri destekler ve UTF-8 gibi çok dilli karakter setleriyle doğru çalışır.
Kullanımı:
mb_strtoupper(string $metin, string $encoding = "UTF-8"): string
Örnek:
$metin = "çığlık ışık izmir";
echo mb_strtoupper($metin, 'UTF-8');
// Çıktı: ÇIĞLIK IŞIK İZMİR ✅
🧪 Karşılaştırmalı Örnek
Girdi | strtoupper() Sonucu | mb_strtoupper() Sonucu |
---|---|---|
ışık | ISIK | IŞIK |
çığ köprü izmir | ÇIĞ KÖPRÜ İZMİR | ÇIĞ KÖPRÜ İZMİR |
i̇stanbul | İSTANBUL | İSTANBUL |
🛠️ Profesyonel Yardımcı Fonksiyon
Projelerinizde tekrar kullanılabilir bir yardımcı fonksiyon yazmak mantıklıdır:
function buyukHarfeCevir($metin) {
return mb_strtoupper($metin, 'UTF-8');
}
⚙️ Ekstra: mbstring
Yüklü mü?
mb_strtoupper()
fonksiyonu mbstring
eklentisine bağlıdır. Sunucunuzda yüklü değilse, bu fonksiyon çalışmayacaktır.
Kontrol etmek için:
if (!function_exists('mb_strtoupper')) {
die("mbstring uzantısı yüklü değil!");
}
🧠 Neden Önemlidir?
- Doğru veri işleme: Kullanıcı adları, şehir isimleri gibi verilerde bozulma yaşanmaz.
- SEO uyumu: URL yapılarında ya da başlıklarda tutarlılık sağlar.
- Veri arama ve karşılaştırma: Aynı ifadeler büyük-küçük harf farklılığı nedeniyle eşleşmemezlik yaşamaz.
📌 Alternatif: Baş Harfleri Büyütme (mb_convert_case
)
Tüm metni büyük yapmak yerine sadece her kelimenin baş harfini büyütmek isterseniz:
echo mb_convert_case("istanbul büyükşehir belediyesi", MB_CASE_TITLE, "UTF-8");
// Çıktı: Istanbul Büyükşehir Belediyesi
✍️ Sonuç
PHP’de metinleri büyük harfe çevirirken Türkçe karakterleri göz ardı etmek veri bütünlüğünü bozabilir. mb_strtoupper()
fonksiyonu, bu sorunun çözümü için en güvenilir ve profesyonel yaklaşımdır. Özellikle çok dilli uygulamalar ve Türkiye pazarı için geliştirilen sistemlerde bu konuya dikkat etmek gereklidir.
📚 Ek Kaynaklar
Hazırladığınız her PHP projesinde metin dönüşümlerinde UTF-8 ve mb_
fonksiyonlarını kullanmanız, gelecekte oluşabilecek dil desteği sorunlarını şimdiden engellemenizi sağlar.
Share this content:
Yorum gönder