Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Помогите подправить функцию транслита?

Помогите подправить функцию транслита?


     10.11.2016    Общие вопросы по PHP, Модули    513

вопрос
Есть функция которая добавляет название категории в бд, проблема в том, что если я создаю категорию Привет, вместо чпу privet выдается cib? почему так?



        //функция транслита
        function totranslit($var, $lower = true, $punkt = true) {
            $NpjLettersFrom = "абвгдезиклмнопрстуфцыі";
            $NpjLettersTo = "abvgdeziklmnoprstufcyi";
    $NpjBiLetters = array ("й" => "j", "ё" => "yo", "ж" => "zh", "х" => "x", "ч" => "ch", "ш" => "sh", "щ" => "shh", "э" => "ye", "ю" => "yu", "я" => "ya", "ъ" => "", "ь" => "", "ї" => "yi", "є" => "ye" );
    
            $NpjCaps = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЪЫЭЮЯЇЄІ";
    $NpjSmall = "абвгдеёжзийклмнопрстуфхцчшщьъыэюяїєі";
    
            $var = str_replace( ".php", "", $var );
    $var = trim( strip_tags( $var ) );
    $var = preg_replace( "/\s+/ms", "-", $var );
    $var = strtr( $var, $NpjCaps, $NpjSmall );
    $var = strtr( $var, $NpjLettersFrom, $NpjLettersTo );
    $var = strtr( $var, $NpjBiLetters );
    
            if ( $punkt ) $var = preg_replace( "/[^a-z0-9\_\-.]+/mi", "", $var );
    else $var = preg_replace( "/[^a-z0-9\_\-]+/mi", "", $var );

            $var = preg_replace( '#[\-]+#i', '-', $var );

            if ( $lower ) $var = strtolower( $var );
    
            if( strlen( $var ) > 50 ) {
        
            $var = substr( $var, 0, 50 );
        
            if( ($temp_max = strrpos( $var, '-' )) ) $var = substr( $var, 0, $temp_max );
    
            }
    
        return $var;
        }

Ответа пока нет


Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх