PHP字符串替换问题,把随机的姓名后面的一个汉字换成一个”*”,两个就是”**”,哪位高人指点一下.在线等~

如题 谢谢~~ 在线等~
例如"卓文君"=>"卓**","司马相如"=>"司***" ,有个问题 就是中文字符他的长度不是1 好像是2\3 烦

写了个函数给你,我测试了的
<?php
function cut_str($str,$len) {
$j=strlen($str)/2-1;
$m="";
for($i=1;$i<=$j;$i++){$m=$m."*";}
$n = 0;
$tempstr = '';
for ($i=0; $i<$len; $i++) {
if (ord(substr($str,$n,1)) > 224) {
$tempstr .= substr($str,$n,3);
$n += 3;
$i++;
} elseif (ord(substr($str,$n,1)) > 192) {
$tempstr .= substr($str,$n,2);
$n += 2;
$i++;
} else {
$tempstr .= substr($str,$n,1);
$n ++;
}
}
return $tempstr.$m;
}

?>

<?php echo cut_str("卓文君",1); ?>
<?php echo "<br/>"; ?>
<?php echo cut_str("司马相如",1); ?>
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-08
这个可以通过字符串截取来完成。
$str="卓文君";
//从下标1开始,用*替换后面的字符
$newStr=substr_replace($str,"*',1);
第2个回答  2011-03-08
$str="卓文君";
$strsub=substr("卓文君",1);
str_replace($strsub,'*');
你可以先用substr("卓文君",0)

不好意思赶着下班,没写完
第3个回答  2011-03-08
人才济济啊