Php substr fonksiyonu Türkçe karakter sorunu çözümü

Bu yazımızda sizlere Php’de sıkça kullanılan bir fonksiyonun açtığı Türkçe karakter sorununu nasıl çözebileceğiniz hakkında kısa bir bilgi vereceğiz.

Günümüz en işlevsel ve en çok kullanılan Web programlama dili olan Php ile bazı metinlerin bir bölümünü kesip başka yerlerde göstermek için substr fonksiyonunu kullanırız. Örneğin “uzmanforum.net – Türkiyenin Uzman Forumu” diye bir cümlemiz var ve biz bu cümlenin “uzmanforum.net” olan kısmını almak ve başka yerde göstermek istiyoruz. Bunu yapmak için aşağıda ki gibi bir fonksiyon yazıyoruz.

$degisken = "uzmanforum.net - Türkiyenin Uzman Forumu";
//Fonksiyonumuz 0 dan 14. karaktere kadar olan kısmı alıp echo komutu ile ekrana yazdırıyor.
echo substr($degisken,0,14);

Yazdığımız Fonksiyonun Çıktısı:

uzmanforum.net

Substr() fonksiyonumuz çıktıdan da anlayacağınız gibi ilk karakterden başlayıp 14. karaktere kadara olan kısmı aldı ve sonrasında yazdığımız echo komutu ile de ekrana yazdırdık. Şuan için bir sorun yok peki son karakter yani 14. karakterimiz “ç , ı, ö, ş, ü” gibi Türkçe bir karakter olsaydı ne olurdu? Şimdi aynı metnin 19. karakteri olan ü harfine kadar olan kısmı kesip alalım bakalım ne olacak?

$degisken = "uzmanforum.net - Türkiyenin Uzman Forumu";
//Fonksiyonumuz 0 dan 19. karaktere kadar olan kısmı alıp echo komutu ile ekrana yazdırıyor.
echo substr($degisken,0,19);

Kodun Çıktısı:

uzmanforum.net - T�

Gördüğünüz gibi substr fonksiyonu Türkçe bir karakter ile karşılaşınca � bu işareti yazdırdı. Gördüğünüz bu işaretin tek sebebi Php’nin Türkçe karakter desteklemeyen bir dil olması. Peki bu sorunu nasıl aşabiliriz? İşte bu durumlarda mb_substr() fonksiyonu imdadınıza yetişiyor. Bu fonksiyon 4 parametre alır sonuncu parametre ile kestiğimiz yazının Karakter setinin belirleyebilir ve Türkçe destekli hale getirebiliriz.

$degisken = "uzmanforum.net - Türkiyenin Uzman Forumu";
echo mb_substr($degisken,0,19,'UTF-8');

Kodun Çıktısı:

uzmanforum.net - Tü

Fonksiyonumuz bu kadar umarım faydalı bir makale olmuştur. Kolay gelsin.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.