Laravel str_slug无法为unicode bangla工作


Laravel str_slug not working for unicode bangla

我在一个laravel项目工作。我已经点击了url。它对英语很有效。但是当我使用孟加拉语时,它返回空。请帮我解决这个问题。

echo str_slug("hi there");
// Result: hi-there
echo  str_slug("বাংলাদেশ ব্যাংকের রিজার্ভের অর্থ চুরির ঘটনায় ফিলিপাইনের");
// Result: '' (Empty)

str_slug或facade版本Str::slug不能使用非ascii字符串。您可以使用以下方法

function make_slug($string) {
    return preg_replace('/'s+/u', '-', trim($string));
}
$slug = make_slug(" বাংলাদেশ   ব্যাংকের    রিজার্ভের  অর্থ  চুরির   ঘটনায়   ফিলিপাইনের  ");
echo $slug;

// Output: বাংলাদেশ-ব্যাংকের-রিজার্ভের-অর্থ-চুরির-ঘটনায়-ফিলিপাইনের

当然,这段代码将适用于任何本地语言。您可以使用for unicode或任何其他操作。这个preg_match将删除一些特殊字符,并从你的帖子标题转换seo友好的段。

enter code here
     function CleanURL($string, $delimiter = '-') {
      
$string = preg_replace("/[~`{}.''"'!'@'#'$'%'^'&'*'(')'_'='+'/'?'>'<','[']':';'|''']/", "", $string);
    
       
        $string = preg_replace("/['/_|+ -]+/", $delimiter, $string);
    
        return $string;
    }
    $slug=CleanURL($request->title);
    $post->slug=$slug;

试试这个;它将正常工作。

$('input[name=title]').keyup(function () {
    var slugElm = $('input[name=slug]');
    slugElm.val(
        this.value.toLowerCase()
        .replace(this.value, this.value).replace(/^-+|-+$/g, '')
        .replace(/'s/g, '-')
    )
})