Закройся
По всем интересующим вас вопросам вы можете связаться с нами:
администратор
Василий Марнопольский (sEpt0r)
мыло: [email protected]
тел: +7-910-611-69-88
аська: 252-371-321
IMG_0128
менеджер
Михаил Ванишев (Oxi Action)
мыло: [email protected]
тел: +7-915-593-94-01
x_1058b383
e-mail для материалов, новостей и любой интересной информации < [email protected] >
Мы ответим на любые ваши вопросы и предложения.
Контакты
sEpt0r
Проблема с ucwords UTF-8 в PHP
19.11.2009 05:16:01

php ucwordsЭтот пост по администрированию и PHP, и я думаю нашим посетителям мало будет интересен. Пишу для себя, что бы не наступать на грабли второй раз и не забыть что к чему. Ну и может кому то это тоже поможет.

В общем о проблеме с ucwords в кодировке UTF-8 в PHP можно почитать ниже...


Изначально, ucwords правильно обрабатывает символы в кодировке UTF-8, но если брать данные из базы, с неправильно выставленной локалью (что встречается в большинстве CMS), то при обработке слова этой функцией, вместо заглавной буквы мы увидим знак вопроса, либо ещё что нибудь.

Что и где было найдено:

Social Engine

Не правильно обрабатываются поля профиля. А конкретно имя и фамилия. Что бы это исправить, идём в файл include/class_field.php ищем такую строку, примерно 186:

if($field_info[field_special] == 2 || $field_info[field_special] == 3) { $field_value = ucwords($field_value); }

Учитывая, что пользователи любят писать всякие разные имена типа пЕтЯ или шУрИк, необходимость в первой заглавной букве отпадает, поэтому просто комментируем или удаляем эту строку.

Для тех, кто скажет, что заглавная буква нужна обязательно, скажу вам так... Эта функция реализована не до конца, и что бы сделать тут заглавную букву, необходимо сначала привести всё в нижний регистр функцией mb_strtolower а потом уже делать первую букву заглавной. Иначе вы получите такие имена у пользователей ПЕтЯ и ШУрИк.

ИМХО, я просто закомментировал эту строку.




Тэги: php | ucwords | администрирование | SocialEngine


 

Комментировать
Имя:

E-mail:

  Введите текст на картинке слева:
 



Velocity
2 июня 19:00 пл.Театральная

Погода в рязани

Погода в Рязани

Последние коменты