ucfirst_utf8 или функция ucfirst для кодировки utf-8

Сегодня, когда писал очередной скрипт, столкнулся с задачей преобразования первого символа строки в верхний регистр. Для этого в PHP есть стандартная функция ucfirst, но она не корректно работает для кириллицы в кодировке utf-8.

К сожалению, у функции ucfirst нет мультибайтного варианта в модуле расширения mbstring, который содержит полезные аналоги распространенный функций по работе со строками, с которыми можете познакомиться по этой ссылке. Иначе можно было написать нечто вроде mb_ucfirst($str, ‘utf-8) и получить желаемый результат.

Поискав в Google я нашел отличный выход. И чтобы не забыть его решил записать в свой блог «шпаргалку» и заодно поделиться с другими вебмастерами, которые, возможно, тоже могут столкнуться с этой проблемой.

<?php
 
// Функция для всех кодировок
if(!function_exists('mb_ucfirst'))
{
    function mb_ucfirst($str, $encoding = NULL)
    {
        if($encoding === NULL)
        {
            $encoding    = mb_internal_encoding();
        }
 
        return mb_substr(mb_strtoupper($str, $encoding), 0, 1, $encoding) . mb_substr($str, 1, mb_strlen($str)-1, $encoding);
    }
}
 
// функция для utf-8, более лаконичный вариант предыдущей функции
function ucfirst_utf8($str)
{
    return mb_substr(mb_strtoupper($str, 'utf-8'), 0, 1, 'utf-8') . mb_substr($str, 1, mb_strlen($str)-1, 'utf-8');
}
 
?>

Как видите все просто. Теперь в коде можно будет просто прописать ucfirst_utf8 и кириллица в кодировке UTF-8 будет менять первый символ на верхний регистр.

Если у Вас свои хорошие решения этого вопроса — пишите в комментарии.


На правах рекламы:

Юридическая компания Право уже помогла многие с ликвидацией ИП, фирмы и других видов организаций. Такая операция требует хороших знаний и квалицированных юристов. Если Вы нуждаетесь в услуге «ликвидация фирм с долгами» то рекомендуем Вам именно эту компанию — они помогут!


Если Вам интересны темы, про которые я пишу в своем блоге, то Вы можете Подписаться на обновления. Подписываться на новости и обновления можно по емайл или через популярные сервисы yandex и google!

Эта запись была опубликована в рубрике PHP кусочки. Добавить в закладки ссылку.

3 в ответ на ucfirst_utf8 или функция ucfirst для кодировки utf-8:

Добавить комментарий