适用于所有语言的PHP slug函数

I'm wondering if there is a simple function/code that can take care of creating a slug from a given string.

I'm working on a multilingual website (English, Spanish, and Arabic) and I'm not sure how to handle that for Spanish and Arabic specifically.

I'm currently using the below code from CSS-Tricks but it doesn't work for UTF-8 text.

<?php
function create_slug($string){
   $slug=preg_replace('/[^A-Za-z0-9-]+/', '-', $string);
   return $slug;
}
echo create_slug('does this thing work or not');
//returns 'does-this-thing-work-or-not'
?>

I created the library ausi/slug-generator for this purpose.

It uses the PHP Intl extension, to translate between different scripts, which itself is based on the data from Unicode CLDR. This way it works with a wide set of languages.

You can use it like so:

<?php
$generator = new SlugGenerator;

$generator->generate('English language!');
// Result: english-language

$generator->generate('Idioma español!');
// Result: idioma-espanol

$generator->generate('لغة عربية');
// Result: lght-rbyt