我想要一个从 Unicode 字符串创建 slug 的函数,例如gen_slug('Andr茅s Cortez')应该返回andres- cortez. 我该怎么做?
gen_slug('Andr茅s Cortez')
andres- cortez
而不是一个冗长的替换,试试这个:
public static function slugify($text, string $divider = '-') { // replace non letter or digits by divider $text = preg_replace('~[^\pL\d]+~u', $divider, $text); // transliterate $text = iconv('utf-8', 'us-ascii//TRANSLIT', $text); // remove unwanted characters $text = preg_replace('~[^-\w]+~', '', $text); // trim $text = trim($text, $divider); // remove duplicate divider $text = preg_replace('~-+~', $divider, $text); // lowercase $text = strtolower($text); if (empty($text)) { return 'n-a'; } return $text; }
这是基于 Symfony 的 Jobeet 教程中的一个。