Обрезать переменную

Статус
В этой теме нельзя размещать новые ответы.

vanderv

Старатель
Регистрация
30 Май 2009
Сообщения
270
Реакции
12
Не получается обрезать переменную!!! Использую функцию substr. Однако встречается текст у которого на конце вопросик в чёрном ромбике (кодировка утф-8). Есть ли варианты как обрезать до целого слова? ну чтобы небыло так сказать одна буква слова.
Зы. Хочу реализовать "Читать дальше..."
 
Значит ты работаешь с UTF8, ага? Это нормально - substr работает нормально с однобайтными кодировками. Гугли на тему mb-функций(Для просмотра ссылки Войди или Зарегистрируйся по теме). Но это потребует подключения библиотеки на стороне хостера.
Если хостер проигнорирует просьбу включить, тогда можно воспользоваться самопальной функцией:
PHP:
function utf8_substr($str,$from,$len){
  return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.
                       '((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s',
                       '$1',$str);
}
Или перекодировать в win1251, обрезать, потом снова перегнать в utf8.
 
Есть еще библиотека iconv. Функция, соответсвенно, iconv_substr(). Чтобы проверить, включены ли библиотеки, можно просто попробовать вызвать mb_substr() и iconv_substr(). Только нужно убедиться, что включен вывод сообщений об ошибках. Если не получишь сообщение "Call to undefined function", значит библиотека прсутствует и функция определена, т.е. ею можно пользоваться.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху