如何把重复的符号换成一个?
我用dedecms程序生成静态文件fdioher--wehofdo----df.html
就是上面这种我想变成这种
fdioher-wehofdo-df.html
让横杆不重复
人家只给我这样一段代码我不知道如何用
preg_replace("/\-+/","-",$str);
请问怎样把这段代码加进这里
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;
} 哈哈,dedecms是我一个师兄写的~~你换了之后可能访问不到网页的了~ 把
$restr = preg_replace("/\-+/","-",$restr);
加在
return $restr;的上面。
不过其实最好还是加在调用这个函数得到返回值的地方,最好不要改变人家原有的函数。
这个函数会在创建文件前被调用,创建的文件名会一起跟着改变,根本不会发生楼上说的改完之后访问不到网页了。
页:
[1]
