php - 带有非英文字母的蛞蝓

标签 php laravel laravel-5.1

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

我已经在谷歌上搜索了一段时间,但找不到解决方案。

你们中有人遇到过这个问题并找到了解决办法吗?

最佳答案

由于某些浏览器和应用程序仍然不能很好地显示 unicode URL,我建议改为音译您的国际 slugs - 让它们看起来是拉丁文。我个人将其用于我的一个项目:

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

关于php - 带有非英文字母的蛞蝓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37448305/

相关文章:

php - 在 Laravel 中检查整数值是否大于 0

php - 使用 javascript 和 HTML 换行

php - 用php发现时间差后格式错误?

php - Laravel 查询临时表

php - 如何在 Laravel 5 的所有 View 中共享 Auth::user?

php - Laravel Homestead Swift 无法在没有发件人地址的情况下发送消息

php - 我如何访问 mysql_fetch_row 内的元素

php - 如何使用 PHP 编辑器进行调试?

php - 使用 Laravel 4 创建搜索功能

php - 一对一私有(private)聊天使用套接字和 Laravel 5.1