我在一个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, '-')
)
})