Php 用本地语言转换字符串url友好的slug
我想用我的本地语言将用户输入字符串转换成url友好的slug 我使用了Laravel5.2,并尝试使用Php 用本地语言转换字符串url友好的slug,php,laravel-5.2,Php,Laravel 5.2,我想用我的本地语言将用户输入字符串转换成url友好的slug 我使用了Laravel5.2,并尝试使用str_slug($request->input('title')) 它可以将英语字符串转换为slug,但对于本地语言,它返回空字符串。我的输入将是孟加拉语 使用$request->input('title')。我收到了孟加拉语文本,但无法将其转换为url友好的slug 我怎样才能解决这个问题 谢谢。您可以使用以下功能。 我不知道它是否适用于当地语言。但是你可以试试 public functio
str_slug($request->input('title'))
它可以将英语字符串转换为slug,但对于本地语言,它返回空字符串。我的输入将是孟加拉语
使用$request->input('title')
。我收到了孟加拉语文本,但无法将其转换为url友好的slug
我怎样才能解决这个问题
谢谢。您可以使用以下功能。 我不知道它是否适用于当地语言。但是你可以试试
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;
}
或
您可以在此处查看您的特定本地语言
我已经使用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, '-'));
})
拉威尔有一个解决方案
我知道这很旧,但您可以使用laravel helper 第一个参数是标题 第二个参数是分隔符 第三个参数是语言 例如:
Str::slug($file->getClientOriginalName(), '-', 'bn');
您可以使用javascript实现这一点。假设您的文本是“আমার সোনার বাংলা", 函数将返回“আমার-সোনার-বাংলা“。它还删除多个破折号
function slugify(text) {
return text.toLowerCase().replace(text, text).replace(/^-+|-+$/g, '')
.replace(/\s/g, '-').replace(/\-\-+/g, '-');
}
来自@Salman Mahmud的修改答案您可以试试这个
<input type="text" name="title" id="title">
<input type="hidden" name="slug" id="slug">
$("#title").keyup(function(){
var str = $(this).val();
var txt = str.replace(/ /g,"-");
$("#slug").val(txt.toLowerCase());
})
$(“#title”).keyup(函数(){
var str=$(this.val();
var txt=str.replace(//g,“-”);
$(“#slug”).val(txt.toLowerCase());
})
这将产生这种类型的结果”আমার-সোনার-বাংলা“的”আমার সোনার বাংলা“当有多个空格时,它会返回多个破折号。类似于‘我的名字是’。