Olmayan İngilizce dili için strlen

3 Cevap php

i ana sayfasında makalelerin kısa bir açıklama görüntülemek istiyorum. Açıklamaları Tay ve İngilizce dil bir karışımdır.

Ben strlen için bu fonksiyonu kullanıyorum

mb_strlen($str, 'UTF-8');

bazı açıklamalar sadece tek bir satır sonuna kadar ve bazı 3 satır kadar gider ve ben iki satır açıklamaları göstermek istiyorum ama bu gibi acurate değildir.

Strlen i do 155 büyükse

$descr = mb_strlen($descr, 'UTF-8') > 155 ? substr($descr, 0, 152) . '...' : $descr;

Teşekkür ederiz.

3 Cevap

Glyphs, karakterlerin grafiksel gösterimleri, farklı yazı tipleri farklı genişlikleri var. Sadece ile m karşılaştırma i,

mmmmmmmmmm
iiiiiiiiii

Her iki karakter on defa tekrarlanır. Ama m kabartması i oymasıyla çok daha geniştir.

Yani (tek aralıklı fontların hariç) karakter sayısından grafiksel gösterimi genişliğini sonucuna varamayız.

substr utf-8 veri kullanımı güvenli değildir. Kullan mb_substr

öncelikle '\n' tarafından dize bölmek ve ardından mb_substr ile triming yapmak 3 cevher daha hatları ile girişlerini engellemek istiyorsanız