Ben kullandığınızda substr() Ben sonunda garip bir karakter olsun
$articleText = substr($articleText,0,500);
Ben 500 karakter bir çıkış var ve <-
Bu nasıl iIfix olabilir? Bir kodlama sorunu mudur? Benim dil Yunan.
substr a> bayt değil, karakterler kullanılarak sayıyor.
ve bayt başına sayma olanlar için oldukça iyi değil - Yunan muhtemelen UTF-8 gibi, bazı çoklu-bayt kodlamayı kullanarak anlamına gelir.
Belki mb_substr could help, here : the mb_* a> fonksiyonları multi-byte kodlamaları için özel olarak yaratılmıştır kullanarak.
Kullan mb_substr instead, it is able to deal with multiple encodings, not only single-byte strings as substr a>:
$articleText = mb_substr($articleText,0,500,'UTF-8');
Orada yarısında unicode karakter dilimleme gibi görünüyor. Kullan mb_substr a> yerine unicode-güvenli dize dilimleme için.
UTF-8 kodlanmış dizeleri için alternatif çözüm - bu alt dize kesmeden önce karakter UTF-8 çevirecektir.
$articleText = substr(utf8_decode($articleText),0,500);
Geri UTF-8 articleText dize almak için, bir ekstra işlem gerekli olacaktır:
$articleText = utf8_encode( substr(utf8_decode($articleText),0,500) );
ms_substr () Ayrıca ben html kodunu ayrıştırma sonra sorun yaşıyorsanız hangi yanı sonları garip firar hattı kaldırılması için mükemmel çalışıyor. Sorun tarafından ele DEĞİLDİ:
trim()
veya:
var_dump(preg_match('/^\n|\n$/', $variable));
veya:
str_replace (array('\r\n', '\n', '\r'), ' ', $text)
Tutmazsan.