PHP str_len, mb_strlen Kullanımı ve Farklılıkları

PHP’de bir kelimenin yada metnin uzunluğunu almak için ilk olarak str_len fonksiyonu kullanmak akla gelebilir fakat türkçe karakterler olduğu zaman string değerde uzunluk konusunda fazladan sonuç ile karşılaşabilirsiniz.

PHP str_len, mb_strlen kullanımı ve farklılıkları

PHP str_len, mb_strlen kullanımı ve farklılıkları

str_len fonksiyonuna parametre olarak verilen string değer içerisinde eğer ö,ı,ğ,ş gibi karakterler veya daha farklı özel karakterler yok ise o zaman uzunluk boyutunu doğru olarak dönderecektir fakat eğer bahsettiğim değerler var ise o zaman uzunluk değerinin fazla çıktığını fark edeceksiniz örnek çok kelimesini str_len fonksiyonuna parametre olarak geçtiğimizde 3 değerinin dönmesi gerekmektedir fakat 4 değeri dönmektedir bunun nedeni daha öncede bahsetmiş olduğumuz gibi ç karakterinden kaynaklanmaktadır. Bunun çözümü için yapmanız gereken utf8_decode fonksiyonunu kullanıp özel karakterleri ? işaretine çevirip sayma işlemini gerçekleştirebilirsiniz. Örnek için alttaki koda göz atabilirsiniz.

strlen Sözdizimi

PHP

Sonuç

Decode işlemi yapmadan kullanmak isterseniz yapmanız gereken fonksiyon ise mb_strlen fonksiyonudur bu fonksiyon strlen fonksiyonuna göre 2 parametre alıyor fakat 2.parametre opsiyoneldir strlen fonksiyonunda olduğu gibi string değerinizi geçtiğinizde bu değerin kodlamasını seçebiliyorsunuz seçebileceğiniz kodlama türlerine ise [bcvc url=”http://php.net/manual/tr/mbstring.configuration.php#ini.mbstring.internal-encoding”]buradan[/bcvc] ulaşabilirsiniz. üstteki kodu mb_strlen fonksiyonuna göre uyarlayalım.

mb_strlen Sözdizimi

PHP

Sonuç

Gördüğünüz gibi herhangi bir encode işlemine tabi tutmadan ve mb_strlen fonksiyonu için opsiyonel olan kodlama türünü belirtmeden istediğimiz sonuca daha kısa yolla ulaşmış olduk.

Bunlar da hoşunuza gidebilir...

2 Cevaplar

  1. Bora dedi ki:

    mb_strlen işe yaramıyordu. kafayı yedik. utf8_decode işe yaradı. bu örnek hiçbir yerde yoktu. teşekkür ederiz.

Bir Cevap Yazın