2011-03-19 6 views
0

すべての文字列を受け取り、すべての非英数字を1つの文字に置き換えたWebサイトを表示します。URL保存正規表現機能

どうすればよいですか?

+0

これは、URLを「slugifying」と呼ばれます。 1つの正規表現よりも少し複雑です。どの言語を使用していますか? – Cameron

答えて

1

は、私はチェコ語のために、このような関数を使用しますそれは、すべての非標準文字を-に変換するより読みやすいということです。あなたはまた、長い-シーケンスを取り除くために

$string = preg_replace('~-{2,}~', '-', $string); 

のような行を追加したい場合があります

EDIT

0

PHPでは?

あり、より良い/より効率的なパターンとすることが、私はちょうどこの機能によって私の文字列を渡す場合があります

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; 
} 

追加:

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')); 
} 
+0

http://stackoverflow.com/questions/4051889/regular-expression-any-text-to-url-friendly-one/4051995#4051995 – Christian