суббота, 12 октября 2019 г.

Транслит для псевдонимов (алиасов)

PHP функция. Это не просто транслит. Это ещё очистка всех лишних символов, простановка дефисов вместо пробелов и доп. проверки. Тут - всё, что нужно от такой функции. При этом кратко и лаконично.


// translit
function rus2lat4alias($text) {
    $text = mb_strtolower(trim($text));
    $text = preg_replace("/([0-9])х([0-9])/", "$1-$2", $text); // Ха русская
    $text = preg_replace("/([0-9])x([0-9])/", "$1-$2", $text); // Икс латинская
    $ru = explode(" ", "а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я");
    $lat = explode(" ", "a b v g d e e zh z i j k l m n o p r s t u f h c ch sh sch - y - e ju ja");
    $text = str_replace($ru, $lat, $text);
    unset($ru, $lat);
    $text = preg_replace("/[^a-zA-Z0-9\-]/", "-", $text);
    $text = preg_replace("/[-]{2,}/", "-", $text);
    $text = trim($text, '-');
    return $text;
}

Комментариев нет:

Отправить комментарий