我想把一个用户输入的字符串转换成我的本地语言的url友好的插件。
我已经使用了laravel 5.2,并尝试使用str_slug($request->input('title'))。
它可以将英文字符串转换为slug,但对于本地语言,它返回空字符串。我的输入将使用孟加拉语言。
使用$request->input('title')。我得到了孟加拉文本,但无法将其转换为url友好的插件。
我该如何解决这个问题呢?
谢谢。
发布于 2017-04-17 15:04:27
您可以使用以下函数。我不知道它能不能和当地语言一起工作。但是你可以试一试。
public function createSlug($str, $delimiter = '-'){
$slug = strtolower(trim(preg_replace('/[\s-]+/', $delimiter, preg_replace('/[^A-Za-z0-9-]+/', $delimiter, preg_replace('/[&]/', 'and', preg_replace('/[\']/', '', iconv('UTF-8', 'ASCII//TRANSLIT', $str))))), $delimiter));
return $slug;
} 或
您可以在此处查看您的特定本地语言http://code.google.com/p/php-slugs/
发布于 2020-01-07 18:10:44
我知道这很旧,但是你可以使用laravel Str::slug() helper
第一个参数是title
第二个参数是分隔符
第三个参数是语言
示例:
Str::slug($file->getClientOriginalName(), '-', 'bn');发布于 2017-04-17 15:30:01
我已经使用jquery完成了这项工作,并且运行良好
$('input[name=title]').on('blur', function () {
var slugElm = $('input[name=slug]');
if (slugElm.val()) { return; }
// slugElm.val(this.value.toLowerCase().replace(/[^a-z0-9-]+/g, '-').replace(/^-+|-+$/g, ''));
slugElm.val(this.value.toLowerCase().replace(this.value, this.value).replace(/^-+|-+$/g, '')
.replace(/\s/g, '-'));
})对于幼虫来说,有一个解决方案。
http://killerwhalesoft.com/blog/make-laravel-slug-support-utf8-characters/
https://stackoverflow.com/questions/43437067
复制相似问题