我用dedecms程序标题有时会产生------ 有多少不一定,一次出现几次也不一定,想让它不管出现几根横线都只换成一个横线出现,这个怎么实现哟。

解决方案 »

  1.   

    如果不设置文件是这种
    fdioher--wehofdo----df.html
    我想生成静态文件后变成这种
    fdioher-wehofdo-df.html
      

  2.   

    如何把它加到这段代码里
    function SpGetPinyin($str,$ishead=0,$isclose=1){
        global $pinyins;
        $restr = "";
        $str = trim($str);
        $slen = strlen($str);
        if($slen<2) return $str;
        if(count($pinyins)==0){
            $fp = fopen(dirname(__FILE__)."/../data/pinyin.db","r");
            while(!feof($fp)){
                $line = trim(fgets($fp));
                $pinyins[$line[0].$line[1]] = substr($line,3,strlen($line)-3);
            }
            fclose($fp);
        }
        for($i=0;$i<$slen;$i++){
            if(ord($str[$i])>0x80)
            {
                $c = $str[$i].$str[$i+1];
                $i++;
                if(isset($pinyins[$c])){
                    if($ishead==0) $restr .= $pinyins[$c];
                    else $restr .= $pinyins[$c][0];
                }else $restr .= "-";
            }else if( eregi("[a-z0-9]",$str[$i]) ){    $restr .= $str[$i]; }
            else{ $restr .= "-";  }
        }
        if($isclose==0) unset($pinyins);
        return $restr;
    }
    请高手帮帮忙啊
      

  3.   

    $restr = preg_replace("/\-+/","-",$str);
    return $restr;
    我把它放在这里
    原来生成这种fdioher--wehofdo----df.html
    现在生成这种fdioher  wehofdo     df.html,更怪
    原有几个分隔符现在就有几个空格
      

  4.   


    $str="fdioher--wehofdo----df.htm--l--aaa";
    $restr = preg_replace("/\-+/","-",$str);
    var_dump($restr); //结果:string(28) "fdioher-wehofdo-df.htm-l-aaa"