Slugs用非英文字母

时间:2016-05-25 21:56:25

标签: php laravel laravel-5.1

我一直在使用Laravel的Str::slug函数,我意识到如果用户只提交非英文字母,它根本不会创建一个slug。

我已经谷歌搜索了一段时间,我无法找到解决方案。

你们有没有遇到过这个并找到了解决办法?

1 个答案:

答案 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;
}