我正在编写一个自定义的博客脚本,并且作为它的一部分,我正在使用用于发布URL的slug。我有它的代码到目前为止是需要函数的轻微修改
public function get_slug($str) {
// convert to lowercase
$str = strtolower($str);
// remove special chars
$str = preg_replace('/[^a-zA-Z0-9]/i', ' ', $str);
// remove what space from beginning and end
$str = trim($str);
// remove repeat spaces
$str = preg_replace('/\s+/', ' ', $str);
// replace spaces with hyphens
$str = preg_replace('/\s+/', '-', $str);
return $str;
}
这伟大工程的大部分地区,但是如果在字中间的特殊字符它只是用连字符转向“可以代替它,我已经注意到't'into'can-t'而不是'can not'
虽然在预设情况下,我可以编辑数据库并手动修复它,我想自动从字的中间去掉特殊字符,不要用炒作来代替它们。
退房[此功能(http://stackoverflow.com/questions/3230012/:
上述前将这个用它们的对应物替换口音/ 3230193#3230193)作为这一个的潜在替代品。 –
尝试在第一次替换中将空格更改为空字符串。 – Luigi