Как пользоваться Transliterator?
function slugify($string) {
    $translit = "Any-Latin; NFD; [:Nonspacing Mark:] Remove; NFC; [:Punctuation:] Remove; Lower();";
    $string = transliterator_transliterate($translit, $string);
    $string = preg_replace('/[-\s]+/', '-', $string);
    return trim($string, '-');
}

echo slugify("Я люблю PHP!");Источник: php.net/manual/ru/transliterator.transliterate.php...
Упрощённый вариант, без раскуривания доки по транслитерейту: transliterator_transliterate('Latin-ASCII', transliterator_transliterate('Latin', $sourceString));