我在laravel项目中工作。我有一个slu ur的网址。它适用于英语。但是当我使用Bangla时它返回空。请帮我解决这个问题。
echo str_slug("hi there");
// Result: hi-there
echo str_slug("বাংলাদেশ ব্যাংকের রিজার্ভের অর্থ চুরির ঘটনায় ফিলিপাইনের");
// Result: '' (Empty)
答案 0 :(得分:14)
str_slug
或外观版Str::slug
不适用于非ascii字符串。您可以使用此方法
function make_slug($string) {
return preg_replace('/\s+/u', '-', trim($string));
}
$slug = make_slug(" বাংলাদেশ ব্যাংকের রিজার্ভের অর্থ চুরির ঘটনায় ফিলিপাইনের ");
echo $slug;
// Output: বাংলাদেশ-ব্যাংকের-রিজার্ভের-অর্থ-চুরির-ঘটনায়-ফিলিপাইনের
答案 1 :(得分:0)
尝试一下;它会正常工作。
$('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, '-')
)
})
答案 2 :(得分:-1)
当然,此代码将适用于任何本地语言。您可以使用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;