Какую функцию для подсчета символов мне использовать, чтобы узнать, поместится ли значение в БД MySQL?
Есть strlen, mb_strlen, у фреймворка, на котором я пишу (Kohana) есть UTF8::strlen.
Какую мне надо использовать, чтобы узнать, поместится ли введенный пользователем текст в поле базы данных? Ведь если не подсчитывать, то текст может вместиться не полностью. И на странице, где он отображается, может поехать верстка (при сохранении не хватит места для закрывающего тега), например.
начиная с 5 версии mysql Если вы указываете кодировку utf-8 значит количество символов будет такое какое укажете в поле длины.
В более ранних версиях поле длина выделяло соответствующее количество байт, что было не очень удобно для кодировок с переменным числом байт, как например utf-8.
strlen выдаст длину в байтах, mb_strlen выдаст длину в символах в указанной кодировке, UTF8::strlen скорее всего просто сахар для mb_strlen в utf-8.