В кодировке UTF простое обрезание строки substr($str, 0, 100), приводит к появлению нераспознанных символов. Нам помогут функции mb_
public function getSubContent()
{
$str = strip_tags($this->getContent());
return mb_substr($str, 0, 100, 'utf-8').
(mb_strlen($str, 'utf-8') > 100 ? '...' : '');
}
5 комментариев:
yup, thanks for that
Жалко, что регулярки с utf-8 до сих пор не работают..
preg кажется работает
главное модификатор /u поставить
иногда лучше использовать другую функцию, так как тот код не везде срабатывает
function myutf8_substr2($str,$from,$len){
# utf8 substr
return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.
'((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s',
'$1',$str);
}
как здесь http://www.eco-money.ru/forum/topic?id=7
я сам постоянно сталкиваюсь с такой проблемкой, кода кодю под joomla
Thanks a lot, man!
Помогло решить мою проблему :)
Отправить комментарий