Вход Регистрация
Файл: sys/fnc/utf8_string.php
Строк: 31
<?php

#получение кол-ва символов строки 

function utf8_strlen($str) {
        if (
function_exists('mb_substr')) {
            return 
mb_strlen($str);
        }
        if (
function_exists('iconv')) {
            return 
iconv_strlen($str);
        } else {
#извращенный способ при отсутствии библиотек
        
static $rus;
        if (!isset(
$rus)) {
            
$rus = array('й', 'ц', 'у', 'к', 'е', 'н', 'г', 'ш', 'щ', 'з', 'х', 'ъ', 'ф', 'ы', 'в', 'а', 'п', 'р', 'о', 'л', 'д', 'ж', 'э', 'я', 'ч', 'с', 'м', 'и', 'т', 'ь', 'б', 'ю', 'Й', 'Ц', 'У', 'К', 'Е', 'Н', 'Г', 'Ш', 'Щ', 'З', 'Х', 'Ъ', 'Ф', 'Ы', 'В', 'А', 'П', 'Р', 'О', 'Л', 'Д', 'Ж', 'Э', 'Я', 'Ч', 'С', 'М', 'И', 'Т', 'Ь', 'Б', 'Ю');
        }
        return 
strlen(str_replace($rus, '0', $str));
    }
}

#Получение подстроки
function utf8_substr($str, $len, $dot = 1, $start = 0) {
    if (
utf8_strlen($str) > $len) {
        if (
function_exists('mb_substr')) {
            
$str = mb_substr($str, $start, $len);
        }
        if (
function_exists('iconv')) {
            
$str = iconv_substr($str, $start, $len);
        } else {
            
$out = substr($str, $start, $len);
        } 
// могут появиться нечитаемые символы
        
if ($dot) {
            
$str.=' ...';
        }
    }
    return 
$str;
}
Онлайн: 2
Реклама