PHP

Дополнительные функции mb_string

Как известно строковые функции PHP не правильно работают с русским текстом в кодировке UTF-8. Чтобы решить эту проблему предполагается использовать функции mb_string, но тут проблема полностью не решается т.к. некоторых функций в нем нет. Далее представлены недостающие функции и примеры их работы.

1

mb_ucfirst - первый символ строки в верхний регистр

Мультибайтовый аналог функции ucfirst().

if (!function_exists('mb_ucfirst')) {
    function mb_ucfirst($str, $enc = 'utf-8') {
        return
            mb_strtoupper(mb_substr($str, 0, 1, $enc), $enc) .
            mb_substr($str, 1, mb_strlen($str, $enc), $enc);
    }
}
echo ucfirst('русский текст');    // русский текст
echo mb_ucfirst('русский текст'); // Русский текст
2

mb_substr_replace - заменить часть строки

Мультибайтовый аналог функции substr_replace().

if (!function_exists('mb_substr_replace')) {
    function mb_substr_replace($string, $replacement, $start, $length = null, $encoding = null) {
        if ($encoding == null) {
            $encoding = mb_internal_encoding();
        }

        if ($length == null) {
            return mb_substr($string, 0, $start, $encoding) . $replacement;
        } else {
            if ($length < 0) {
                $length = mb_strlen($string, $encoding) - $start + $length;
            }

            return
                mb_substr($string, 0, $start, $encoding) .
                $replacement .
                mb_substr($string, $start + $length, mb_strlen($string, $encoding), $encoding);
        }
    }
}
echo substr_replace('Предложение на русском языке', 'английском', 15, 7); 
// Предлож�английском на русском языке

echo mb_substr_replace('Предложение на русском языке', 'английском', 15, 7); 
// Предложение на английском языке
3

mb_invert_case - инвертировать регистр

function mb_invert_case($s) {
    $o = '';
    foreach (preg_split('/(?<!^)(?!$)/u', $s) as $v) {
        $o .= (mb_strtolower($v) === $v) ? mb_strtoupper($v) : mb_strtolower($v);
    }

    return $o;
}
echo mb_invert_case('предложение'); // ПРЕДЛОЖЕНИЕ
echo mb_invert_case('ПРЕДЛОЖЕНИЕ'); // предложение
4

mb_str_pad

str_pad - дополняет строку другой строкой до заданной длины.

function mb_str_pad($input, $pad_length, $pad_string = ' ', $pad_type = STR_PAD_RIGHT)
{
    $diff = strlen($input) - mb_strlen($input);
    return str_pad($input, $pad_length + $diff, $pad_string, $pad_type);
}
18 декабря 2016
В последнее время письма отправляемые с хостингов через функции mail() и mb_send_mail() часто попадают или совсем не...
cURL PHP – это библиотека предназначенная для получения и передачи данных через такие протоколы, как HTTP, FTP, HTTPS....
В статье приведены основные примеры работы с расширением PHP PDO. Такие как подключение к БД, получение, изменение и...
Библиотека GD дает возможность работать с изображениями в PHP. Далее представлены примеры как изменить размер, вырезать...