Я получаю текст UTF8 от базы данных, и я хочу показать только первые символы $len (заканчивающийся, одним словом). Я попробовал несколько опций, но функция все еще не работает из-за специальных символов (á, é, í, ó, и т.д.).
Спасибо за справку!
function text_limit($text, $len, $end='...')
{
mb_internal_encoding('UTF-8');
if( (mb_strlen($text, 'UTF-8') > $len) ) {
$text = mb_substr($text, 0, $len, 'UTF-8');
$text = mb_substr($text, 0, mb_strrpos($text," ", 'UTF-8'), 'UTF-8');
...
}
}
Редактирование для добавления примера
Если я усекаю текст с 65 символами, он возвращается:
Довод "против" Un jardín de estilo neoclásico acorde el …
Если я изменяю специальные символы (í, á), то это возвращается:
Довод "против" Un jardin de estilo neoclasico acorde el Palacio de …
Я уверен, что существует что-то странное с кодированием или сервером или php; но я не могу понять это!Спасибо!
Конечное решение
Я пользуюсь этой библиотекой UTF8 PHP, и все работает теперь...