http://www.justmp5player.com/samsung%20mp3%20player.html 我用的是伪静态,
当输入mp3 player 中间有一个空格,连接的时候网站地址的中间就会有%20 这个符号! 但是我看到和多国外的网站上, 空格都是- 代表的!·如下
http://www.justmp5player.com/samsung-mp3-player.html有没有办法,让%20 变成 -  符号,而且网站不出问题!

解决方案 »

  1.   

    //PHPURL编码转换 
    function   encodeURIComponent($text)   { 
        preg_match_all( "/[\x81-\xfe]?./ ",$text,$regs); 
        $rtext   =   " "; 
        foreach($regs[0]   as   $v)   { 
          $ch   =   iconv( "gb2312 ", "UTF-8 ",$v); 
          $rtext   .=   sprintf( "%%%02X%%%02X%%%02X ",ord($ch[0]),ord($ch[1]),ord($ch[2])); 
        } 
        return   $rtext; 
    } function   escape($str){ 
            preg_match_all( "/[\x80-\xff].|[\x01-\x7f]+/ ",$str,$newstr); 
            $ar   =   $newstr[0]; 
            foreach($ar   as   $k=> $v){ 
                    if(ord($ar[$k])> =127){ 
                            $tmpString=bin2hex(iconv( "GBK ", "ucs-2 ",$v)); 
                            if   (!eregi( "WIN ",PHP_OS)){ 
                                    $tmpString   =   substr($tmpString,2,2).substr($tmpString,0,2); 
                            } 
                            $reString.= "%u ".$tmpString; 
                    }   else   { 
                            $reString.=   rawurlencode($v); 
                    } 
            } 
            return   $reString; 

    function   unescape($str)   { 
        $str   =   rawurldecode($str); 
        preg_match_all( "/(?:%u.{4})|&#x.{4};|&#\d+;|.+/U ",$str,$r); 
        $ar   =   $r[0]; 
        foreach($ar   as   $k=> $v)   { 
            if(substr($v,0,2)   ==   "%u "){ 
    if   (!eregi( "WIN ",PHP_OS)){ 
    $tmpString   =   "%u ".substr($v,4,2).substr($v,2,2); 

                $ar[$k]   =   iconv( "UCS-2 ", "GB2312 ",pack( "H4 ",substr($tmpString,-4))); 
      } 
            elseif(substr($v,0,3)   ==   "&#x ") 
                $ar[$k]   =   iconv( "UCS-2 ", "GB2312 ",pack( "H4 ",substr($v,3,-1))); 
            elseif(substr($v,0,2)   ==   "&# ")   { 
                $ar[$k]   =   iconv( "UCS-2 ", "GB2312 ",pack( "n ",substr($v,2,-1))); 
            } 
        } 
        return   join( " ",$ar); 

    自己选,注意编码
      

  2.   

    你把 rewrite 规则中的空格替换成 - 就行了。
      

  3.   

    rewrite 规则的空格我弄吧,搞不定,空格无法定义 谁能帮我写一下呀