将ÆØÅ转换为AE OE AA

时间:2013-02-16 10:57:40

标签: php preg-replace special-characters str-replace

我无法将æøå转换为aeoeaa

我正在尝试使用此功能制作一个seo友好的网址,但它只删除了æøå个符号。

我的功能是:

function seo_friendly_url($string, $cid) {
    //Unwanted:  {UPPERCASE} ; / ? : @ & = + $ , . ! ~ * ' ( )
    $string = strtolower($string);
    //Convert ÆØÅ
    $string = str_replace(chr(230), 'ae', $string); 
    $string = str_replace(chr(248), 'oe', $string); 
    $string = str_replace(chr(229), 'aa', $string); 
    //Strip any unwanted characters
    $string = preg_replace("/[^a-z0-9_\s-]/", "", $string);
    //Clean multiple dashes or whitespaces
    $string = preg_replace("/[\s-]+/", " ", $string);
    //Convert whitespaces and underscore to dash
    $string = preg_replace("/[\s_]/", "-", $string);
    return $string;
}

有没有人对如何解决这个问题有任何想法。我尝试过在网络上发现的许多不同的东西,但似乎没有任何工作。

1 个答案:

答案 0 :(得分:1)

请查看此手册页上的评论: http://php.net/manual/en/function.urlencode.php

也许是这样的:

function seo_friendly_url($url) {
    $url = strtolower($url);
    $url=str_replace('æ','ae',$url);
    $url=str_replace('ø','oe',$url);
    $url=str_replace('å','aa',$url);    
    return urlencode($url);
}

会这样做吗?