URL保存正则表达式功能

时间:2011-03-19 17:44:35

标签: php regex

我看到网站带有任何字符串并用一个字母替换所有非字母数字字符 -

我该怎么做?

2 个答案:

答案 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'));
}