@mts2050

Из кириллицы в латиницу. Конвертация в php?

Есть функция <?php echo $category['name']; ?>, которая выводит "Я в будке".
Можно ли конвертировать ее в ya_v_budke средствами php, и как это сделать?
  • Вопрос задан
  • 3863 просмотра
Пригласить эксперта
Ответы на вопрос 4
/**
     * Функиция транслитерации
     * @param string
     * @return string
     */
    public function translit($st)
    {
        $st = mb_strtolower($st, "utf-8");
        $st = str_replace([
            '?', '!', '.', ',', ':', ';', '*', '(', ')', '{', '}', '[', ']', '%', '#', '№', '@', '$', '^', '-', '+', '/', '\\', '=', '|', '"', '\'',
            'а', 'б', 'в', 'г', 'д', 'е', 'ё', 'з', 'и', 'й', 'к',
            'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х',
            'ъ', 'ы', 'э', ' ', 'ж', 'ц', 'ч', 'ш', 'щ', 'ь', 'ю', 'я'
        ], [
            '_', '_', '.', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_',
            'a', 'b', 'v', 'g', 'd', 'e', 'e', 'z', 'i', 'y', 'k',
            'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'h',
            'j', 'i', 'e', '_', 'zh', 'ts', 'ch', 'sh', 'shch',
            '', 'yu', 'ya'
        ], $st);
        $st = preg_replace("/[^a-z0-9_.]/", "", $st);
        $st = trim($st, '_');

        $prev_st = '';
        do {
            $prev_st = $st;
            $st = preg_replace("/_[a-z0-9]_/", "_", $st);
        } while ($st != $prev_st);

        $st = preg_replace("/_{2,}/", "_", $st);
        return $st;
    }
Ответ написан
master2016
@master2016
Всё нормально.
Нет. Только через написание своей функции подстановки символов или использование уже написанной.
Ответ написан
Комментировать
@Nc_Soft
В laravel есть str_slug
Ответ написан
Комментировать
artzolin
@artzolin
php, WordPress разработка сайтов artzolin.ru
Вам подойдет функция sanitize_title(); Но некоторые спецсимволы будут конвертированы в юникод-формат вида %2С и т.д. Лучше всего декодировать их с помощью urldecode() и удалить из строки все символы за исключением латинских букв, цифр, дефиса и нижнего подчеркивания

$post_slug = urldecode( sanitize_title($post_title) );
$post_slug = preg_replace('/([^a-z\d\-\_])/', '', $post_slug);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Ведисофт Екатеринбург
от 25 000 ₽
YCLIENTS Москва
от 200 000 до 350 000 ₽
от 300 000 до 500 000 ₽
06 мая 2024, в 10:02
3000 руб./за проект
06 мая 2024, в 09:38
1200 руб./в час
06 мая 2024, в 09:37
1200 руб./в час