zend-blog-3-backend

Форк
0
/
RuTransform.php 
60 строк · 1.8 Кб
1
<?php
2

3
namespace App\Utils;
4

5
class RuTransform
6
{
7
    public static function ruTransform($value = null)
8
    {
9
        // replace non letter or digits by -
10
        $value = trim(preg_replace('/[^\pL\d]+/u', '-', $value), '-');
11

12
        $transform = [
13
            'А' => 'A',    'а' => 'a',
14
            'Б' => 'B',    'б' => 'b',
15
            'В' => 'V',    'в' => 'v',
16
            'Г' => 'G',    'г' => 'g',
17
            'Д' => 'D',    'д' => 'd',
18
            'Е' => 'E',    'е' => 'e',
19
            'Ё' => 'E',    'ё' => 'e',
20
            'Ж' => 'Zh',   'ж' => 'zh',
21
            'З' => 'Z',    'з' => 'z',
22
            'И' => 'I',    'и' => 'i',
23
            'Й' => 'Y',    'й' => 'y',
24
            'К' => 'K',    'к' => 'k',
25
            'Л' => 'L',    'л' => 'l',
26
            'М' => 'M',    'м' => 'm',
27
            'Н' => 'N',    'н' => 'n',
28
            'О' => 'O',    'о' => 'o',
29
            'П' => 'P',    'п' => 'p',
30
            'Р' => 'R',    'р' => 'r',
31
            'С' => 'S',    'с' => 's',
32
            'Т' => 'T',    'т' => 't',
33
            'У' => 'U',    'у' => 'u',
34
            'Ф' => 'F',    'ф' => 'f',
35
            'Х' => 'Kh',   'х' => 'kh',
36
            'Ц' => 'Ts',   'ц' => 'ts',
37
            'Ч' => 'Ch',   'ч' => 'ch',
38
            'Ш' => 'Sh',   'ш' => 'sh',
39
            'Щ' => 'Sc',   'щ' => 'sc',
40
            'Ъ' => '',     'ъ' => '',
41
            'Ы' => 'Y',    'ы' => 'y',
42
            'Ь' => '',     'ь' => '',
43
            'Э' => 'E',    'э' => 'e',
44
            'Ю' => 'Yu',   'ю' => 'yu',
45
            'Я' => 'Ya',   'я' => 'ya',
46
        ];
47
        $konform_temp = strtolower(strtr($value, $transform));
48

49
        $result = strtr($konform_temp, [
50
            '---' => '-',
51
            '--' => '-',
52
        ]);
53

54
        if (empty($result)) {
55
            $result = 'n-a';
56
        }
57

58
        return $result;
59
    }
60
}
61

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.