我一直在使用Laravel的Str::slug
函数,我意识到如果用户只提交非英文字母,它根本不会创建一个slug。
我已经谷歌搜索了一段时间,我无法找到解决方案。
你们有没有遇到过这个并找到了解决办法?
答案 0 :(得分:3)
由于某些浏览器和应用程序仍然不能很好地显示unicode URL,我建议将音译用于音译 - 让它们看起来很拉丁。我个人将此用于我的一个项目:
public static function slugify($text) {
$text = preg_replace('~[^\\pL\d]+~u', '-', $text);
$text = trim($text, '-');
if (function_exists('transliterator_transliterate')) $text = transliterator_transliterate('Any-Latin; Latin-ASCII', $text);
$text = iconv('utf-8', 'ASCII//TRANSLIT//IGNORE', $text);
$text = strtolower($text);
$text = preg_replace('~[^-\w]+~', '', $text);
return $text;
}