Транслитерация SEF URL в PHP

Немного доработанная функция для транслитерации заголовка в sef url (читаемую ссылку).

Параметры:
  • $string — исходная строка
  • $length — длина строки результата
  • $delimiter — разделитель между словами


  function sefTranslit($string, $length = 128, $delimiter = '-') {
        $tr = array(
            "А" => "a", "Б" => "b", "В" => "v", "Г" => "g", "Д" => "d", "Е" => "e",
            "Ж" => "j", "З" => "z", "И" => "i", "Й" => "y", "К" => "k", "Л" => "l",
            "М" => "m", "Н" => "n", "О" => "o", "П" => "p", "Р" => "r", "С" => "s",
            "Т" => "t", "У" => "u", "Ф" => "f", "Х" => "h", "Ц" => "ts", "Ч" => "ch",
            "Ш" => "sh", "Щ" => "sch", "Ъ" => "", "Ы" => "yi", "Ь" => "", "Э" => "e",
            "Ю" => "yu", "Я" => "ya", "а" => "a", "б" => "b", "в" => "v", "г" => "g",
            "д" => "d", "е" => "e", "ж" => "j", "з" => "z", "и" => "i", "й" => "y",
            "к" => "k", "л" => "l", "м" => "m", "н" => "n", "о" => "o", "п" => "p",
            "р" => "r", "с" => "s", "т" => "t", "у" => "u", "ф" => "f", "х" => "h",
            "ц" => "ts", "ч" => "ch", "ш" => "sh", "щ" => "sch", "ъ" => "y", "ы" => "yi",
            "ь" => "", "э" => "e", "ю" => "yu", "я" => "ya", " " => $delimiter, "." => "",
            "/" => $delimiter
        );
        $res = strtr(trim($string), $tr);

        if (preg_match('/[^A-Za-z0-9_\-]/', $res)) {
            $res = preg_replace('/[^A-Za-z0-9_\-]/', '', $res);
            $res = preg_replace("/[$delimiter]{2,}/", '', $res);
        }

        return urlencode(substr(strtolower($res), 0, $length));
    }

Доработаем SEF URL в OpenCart

Доработаем алгоритм создание человекопонятных ссылок в OpenCart
Пришла мысль, что SEF (ЧПУ) ссылки нужны всегда, а при создании товара в OpenCart их приходится вводить вручную и не всегда про это вспоминаешь.

Так вот, предлагаю идею по оптимизации данного процесса.

Идея состоит в том, что ссылки будут генерироваться автоматически, используя ID товара и… (там уже Вам решать что использовать).

Итак, немного изменим модули!


Самое интересное...!