Navigate / search

Php İlk Harfleri Büyük Yapmak UTF-8

Phpde paragraftaki ya da cümledeki ilk harfleri büyük olarak çevirmek oldukça basittir. Bu harfleri büyütme esnasında yaşadığımız sıkıntılardan biri Türkçe karakter problemidir.

İlk harfleri büyütmek için kullandığımız iki fonksiyon vardır. Biri ucfirst() diğeri ise ucwords(). PHP ucfirst fonksiyonu verdiğimiz metin içerisindeki ilk harfi büyütür, ucwords ise metinteki tüm kelimelerin ilk harflerini büyütür. Konuyla ilgili bilgi almak için daha önceki yazımı okuyabilirsiniz.

Php’de Büyük & Küçük Harfe Çevirme- strtoupper,strtolower,ucfirst,ucwords

Şu yazımda da UTF-8 olarak yani Multibyte karakterlerdeki Türkçe probleminden bahsetmiştim.

Php ile Büyük & Küçük Harf Çevirme Türkçe Problemi

Şimdi ilk karakterleri büyütürken Türkçe karakter problemi yaşamamak için kullandığım fonksiyonu sizinle paylaşacağım.

Örneğimize ucfirst fonkiyonu ile başlayalım.

1
2
3
4
5
6
7
function ucfirst_tr($metin)
{
    $k_uzunluk = mb_strlen($metin, "UTF-8");
    $ilkKarakter= mb_substr($metin, 0, 1, "UTF-8");
    $kalan = mb_substr($metin, 1, $k_uzunluk - 1, "UTF-8");
    return mb_strtoupper($ilkKarakter, "UTF-8") . mb_strtolower($kalan,"UTF-8");
}

Kullanımı;

1
2
$yazi = "şaFAK";
echo ucfirst_tr($yazi);

Sonuç:

Şafak

Peki ya Php ile Her Kelimenin İlk Harfini Büyük Yapmak İstiyorsak!

Bunun için oldukça yararlı bir fonkiyonumuz mevcut. mb_convert_case fonskiyonu.
Cümlemizdeki tüm kelimelerin ilk harflerini büyük yapmamızı sağlayacak.

Bu fonksiyonu kullanırken mp_strtolower fonksiyonuyla beraber kullanmamız gerekicek. Sebebi de ilk harflerin dışındaki harfleri küçük yapmak istememiz.

Kullanımı;

1
2
$metin = "bU cüMlemizin her KELİMESİNİN ilK hARFİ büYük olacaK.";
echo mb_convert_case(mb_strtolower($metin), MB_CASE_TITLE, "UTF-8");

Sonuç;

Bu Cümlemizin Her Kelimesinin İlk Harfi Büyük Olacak.

Php ile Büyük & Küçük Harf Çevirme Türkçe Problemi

Konu: Php ile Büyük & Küçük Harf Çevirme Türkçe Problemi

Yeni fonksiyonlarımız : mb_strtolower() , mb_strtoupper()

Php ile harfleri küçük harftan büyük harfe,büyük harften küçük hafta çevirmek ya da sadece ilk harfleri büyütmek oldukça basittir. Bir kaç Php fonksiyonu ile bunları gerçekleştirebilirsiniz. Bu fonksiyonları anlattığım yazıma bakabilirsiniz.

Php’de Büyük & Küçük Harfe Çevirme

Bu fonksiyonların kullanımı sırasında Türkçe karakter problemleri yaşıyoruz. Bu konuyla ilgili bir kaç geri dönüşün ardından bu problemlere çözüm getirecek UTF-8 ile harfleri değiştirebileceğiniz fonksiyonları sizinle paylaşacağım.

Öncelikle strtolower fonskiyonundan başlayalım. Daha önceki derste anlatmış olduğum gibi bu fonkisyonumuz harfleri küçük harfe çevirmeyi sağlıyor. strtolower fonskiyonu yerine mb_strtolower fonskiyonunu kullanacağız ve karakter setimizi UTF-8 olarak belirteceğiz. Bu sayede harfleri küçültüp büyültürken türkçe karakterlerde sorun yaşamayacağız. Şimdi konuyla alakalı fonksiyonların kullanımı görelim.

1
2
3
4
5
// STRTOLOWER (harf küçültme)
strtolower($metin);
 
// STRTOUPPER (harf küçültme)
strtoupper($metin);

yerine;

1
2
3
4
5
// STRTOLOWER (harf küçültme)
mb_strtolower($metin,"utf-8"); // encoding olarak kullanımı
 
// STRTOUPPER (harf küçültme)
mb_strtoupper($metin,"utf-8"); // encoding olarak kullanımı

Fonksiyonlarını kullanarak Türkçe karakter probleminden kurtulmuş olacağız.

mb_strtolower ve mb_strtoupper fonksiyonularını kullanırken karakter setimizi UTF-8 olarak belirlediğimiz için Türkçe karakter problemi yaşamayacağız ;) Aynı şekilde karakter set sorununu substr fonksiyonu ile de yaşayabilirsiniz. Konuyla ilgili şu yazımı okuyabilirsiniz.

Php Substr Türkçe Karakter Problemi

Bunları öğrendiğimize göre kullanabileceğiniz çok profesyonel olmayan ama heryerde işinizi görebilecek bir kaç fonskiyonu sizinle paylaşacağım.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
function tr_strtolower($metin) {
    return mb_strtolower($metin, 'utf-8');
}
 
function tr_strtoupper($metin) {
    return mb_strtoupper($metin, 'utf-8');
}
 
function tr_ucfirst($metin) {
	$ilk = mb_substr($metin,0,1, 'utf-8');
	$kalan = mb_substr($metin,1,strlen($metin), 'utf-8');
        return tr_strtoupper($ilk).tr_strtolower($kalan);
}

Kendi oluşturduğumuz fonksiyonları kendi projemizde karakter set belirtmeden kullanabiliriz.

1
2
3
tr_strtolower($metin);
tr_strtoupper($metin);
tr_ucfirst($metin);