以下函数重写包含各种字符的新闻和产品标题的 url。我希望创建的字符串仅包含字母数字值和“-”,但没有结尾“-”或空格,也没有重复的“-”。下面的函数工作正常,但我想知道是否有任何方法可以更简单或更高效地编写它?
function urlName($string) {
$string = trim($string); // no open ends
$string = strtolower($string); // all lowercase
$string = strtr($string, 'äöåÄÖÅ', 'aoaaoa'); // substitute umlauts
$string = preg_replace('/[\W]+/', '-', $string); // substitute non-word characters with -
$string = preg_replace('/^-*|-*$/', '', $string); // no beinging or ending -
return $string;
}