2016-05-25 6 views
2

Я использовал функцию Laravel Str::slug, и я понял, что она вообще не создает пули, если пользователь вводит не-английские буквы.Слитки с неанглийскими буквами

Я искал это какое-то время, и я не могу найти решение.

Неужели кто-нибудь из вас столкнулся с этим и нашел исправление?

+0

http://killerwhalesoft.com/blog/make-laravel-slug-support-utf8-characters/ – ceejayoz

ответ

3

Поскольку некоторые браузеры и приложения по-прежнему не отображают 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; 
} 
Смежные вопросы