PHP Substr Türkçe Karakter Sorununun Çözümü

bazinga

Konu Sahibi
Admin
Katılım
1 Şubat 2007
Mesajlar
93,078
Reaksiyon puanı
49,729
Puanı
1,060
Konum
İstanbul
Web Sitesi
izleryazar.com
PHP'de substr fonksiyonunu kullanırken bazen Türkçe karakter nedeniyle problemler olabiliyor.

Bu problemlerin olmaması için substr fonksiyonu yerine mb_substr fonksiyonunun kullanılması gerekiyor.

Örnek vermek gerekirse

PHP:
<?php
$yazi = "PHP Anlatımı FavoriForumum.net";
$kisa=substr($yazi,0,10);
echo "$kisa";
?>


Bu şekilde ekrana yazdırmaya çalışırsak ekrana 'PHP Anlat' yazacaktır oysa 10 karakter seçtiğimiz için 'PHP Anlatı' yazması gerekirdi. Türkçe karakterler ASCII karakterler ve birden fazla karakterler oldukları için sondaki 'ı' harfi gözükmeyecektir.

Bu sorununun çözümü ise gayet basit. substr fonksiyonunun yerine mb_substr fonksiyonunun kullanımı sorunu çözecektir.

Örnek kullanım:

PHP:
<?php
$yazi = "PHP Anlatımı FavoriForumum.net";
$kisa=mb_substr($yazi,0,10,'UTF-8');
echo "$kisa";
?>


Not: Bu kodu yazılan dosyanın kodlaması UTF-8 olmalıdır aksi takdirde hatalı gözükecektir.



Karakter sayısının çok önemli olmadığı durumlarda belki çok önemli bir fonksiyon değil belki ama karakter sayısının çok önemli olduğu noktalarda işinize yarayacaktır. Bu nedenle her zaman bu şekilde kullanmaya alışmakta fayda var :)