Ben bir String Filtre çalışma bu yöntemi almak için çalışıyorum:
public function truncate($string, $chars = 50, $terminator = ' …');
Ben beklerdim
$in = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWYXZ1234567890";
$out = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUV …";
ve aynı zamanda bu
$in = "âãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝ";
$out = "âãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđ …";
İşte $chars
eksi $terminator
dize karakteridir.
Buna ek olarak, filtre, örneğin, $chars
sınırın altında ilk kelime sınırından kesilir gerekiyordu
$in = "Answer to the Ultimate Question of Life, the Universe, and Everything.";
$out = "Answer to the Ultimate Question of Life, the …";
Bu adımları ile çalışması gerektiğini oldukça eminim
- maksimum karakterlik sonlandırıcı karakter arasında substract miktarı
- bu dize hesaplanmış sınırından daha uzundur doğrulamak veya değiştirilmemiş iade
- kelime sınırını almak için hesaplanan sınırının altında dizesindeki son uzay karakteri bulmak
- Hiçbir son uzay bulunursa eğer geçen boşluk veya hesaplanan limitte dize kesti
- dize terminatör append
- bir dize döndürür
Ancak, şimdi str*
ve mb_*
fonksiyonların çeşitli kombinasyonları denedim, ama hepsi yanlış sonuçlar vermiştir. Bu kadar zor olamaz, demek ki bir şey eksik. Birisi bu or Sonunda bunu nasıl anlayabiliriz bir kaynak bana gelin için çalışan bir uygulama paylaşmak istiyorum.
Teşekkürler
P.S. Evet, http://stackoverflow.com/search?q=truncate+string+php önce kontrol var :)