alexa  Menu
Alfabetik sıralamada türkçe karakter sorunu
Alfabetik sıralamada türkçe karakter sorunu

  20.03.2016 ,   yorum yapılmadı ,   1.843 kez okundu.

Hem istek üzerine hem de faydalı olabileceğini düşündüğüm için alfabetik sıralama yaparken türkçe karakterlere göre düzgün sonuç elde edilmesi için neler yapmamız gerektiğini anlatmak istedim.

Açıkcası daha önce kullanmadım bu yöntemi. Fakat istek üzerine ben de merak ettim. Küçük bir araştırma yaptım ve sonuç olumlu oldu. Şöyle ki, bu işlemi yapmak için lokasyonu belirtmemiz ve ona göre sıralama yapmamız gerekiyor. Bunun için kullanacağımız fonksiyon setlocale fonksiyonu.


Fonksiyonu kullanarak localhost üzerinde deneme yaptım ama sonuç olumsuzdu. Biraz araştırınca fonksiyonun php sürümlerine göre değişik sonuçlar çıkardığını öğrenmiş oldum.

Fonksiyonun kullanım şekli şöyle:

Şimdi gelelim bizim yazacağımız koda. Önce setlocale fonksiyonunu kullanmadan sonucun nasıl gözüktüğüne bakalım:

Sonuç: A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-Y-Z-Ç-Ö-Ü-Ğ-İ-Ş

Şimdi bir de setlocale fonksiyonunu kullanarak bakalım:

Sonuç: A-B-C-Ç-D-E-F-G-Ğ-H-I-İ-J-K-L-M-N-O-Ö-P-Q-R-S-Ş-T-U-Ü-V-W-Y-Z

Gördüğünüz gibi sonuç ortada. Açıklamak gerekirse, ilk satırda sadece sayfamızda türkçe karakter sorunu yaşanmasın diye charset ekledik.

Asıl işlemiiz ikinci satırda yer alıyor.

  • setlocale fonksiyonunu kullandık ve ilk bölemde LC_ALL diyerek aşağıdakilerin hepsini etkile demiş olduk yani sıralama fonksiyonu dışında bazı fonksiyonları da etkile dedik.
  • İkinci bölümde yerel yani lokasyonu bildirmek için Türkçeye aid değerleri girdik. Dediğim gibi php sürümlerine göre değişiklik olabilir ve bu kısmı bu kadar uzun değil aşağıdaki gibi de kullanabilirsiniz:

Daha sonra array (dizi) belirledik ve ardından sort() fonksiyonunu kullandık.

Bu şekilde türkçe karakter sıralama sorununu da aşmış olacaksınız.

Kaynak: setlocale

 

1 yıldız2 yıldız3 yıldız4 yıldız5 yıldız (No Ratings Yet)
Loading...

Yorum yapın..

Güvenlik kodu *