我看到网站带有任何字符串并用一个字母替换所有非字母数字字符 -
我该怎么做?
答案 0 :(得分:1)
我使用这样的函数用于捷克语:
function Slugify($string) {
$withdiacritic = array_merge(str_split("říšěžťčýůňúěďáéó", 2), array(" ", "/"));
$woutdiacritic = array_merge(str_split("riseztcyunuedaeo", 1), array("-", "-"));
$string = mb_strtolower($string);
$string = str_replace($withdiacritic, $woutdiacritic, ($string));
$string = preg_replace('/[^a-zA-Z0-9-]/', '-', $string);
return $string;
}
增加的价值在于它比将所有非标准字符转换为-
更具可读性。
修改强>
您可能还想添加一行
$string = preg_replace('~-{2,}~', '-', $string);
去除长-
个序列。
答案 1 :(得分:0)
在PHP?
可能有一个更好/更有效的模式,但我只是通过这个函数传递我的字符串:
function remove_accents($str)
{
return preg_replace('~&([a-z]{1,2})(acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml);~i', '$1', htmlentities($str, ENT_QUOTES, 'UTF-8'));
}