Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用本地语言转换字符串url友好的slug_Php_Laravel 5.2 - Fatal编程技术网

Php 用本地语言转换字符串url友好的slug

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

我想用我的本地语言将用户输入字符串转换成url友好的slug

我使用了Laravel5.2,并尝试使用
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());
})

这将产生这种类型的结果”আমার-সোনার-বাংলা“的”আমার সোনার বাংলা“

当有多个空格时,它会返回多个破折号。类似于‘我的名字是’。