我正在尝试转换:
" Long Grain IRRI-6 White Rice "
到
" long_grain_irri_6_white_rice "
但它正在返回
" long_grain_irri-6_white_rice "
代码如下:
public function phpslug($string){
$slug = preg_replace('/[^a-z0-9-]+/', '_', strtolower($string));
return $slug;
}
我希望它不仅删除字母之间的空格,还希望它也删除“-”,以便可以将其替换为“ _”。
我该如何解决这个问题?
答案 0 :(得分:1)
您可以从RegEx模式中删除-
:
function phpslug($string)
{
$slug = preg_replace('/[^a-z0-9]+/', '_', strtolower(trim($string)));
return $slug;
}
var_dump(phpslug(" Long Grain IRRI-6 White Rice "));
或者您可以简化RegEx模式:
function phpslug($string)
{
$slug = preg_replace('/[-\s]+/', '_', strtolower(trim($string)));
return $slug;
}
var_dump(phpslug(" Long Grain IRRI-6 White Rice "));
string(28) "long_grain_irri_6_white_rice"