最近需要用到显红处理,但为了方便就草草写了个单个字的显红替换。。代码如下:
(注:所以调用的数组只要是中文的就只是两位的,用的是UTF字符集,UTF中一个中文为3个长度。)
[Copy to clipboard]
PHP CODE:
<?php
function xhhs($strx,$sz)
{$len2=count($sz);
for($j=0;$j<$len2;$j=$j+1)
{
if($sz[$j]{0} >127)
{
if(strlen($sz[$j])>3)
{
$ci1=substr($sz[$j],0,3);
$ci2=substr($sz[$j],3,3);
$cix='[color=red]'.$ci1.'[/color]';
$ciy='[color=red]'.$ci2.'[/color]';
$strx=str_replace($ci1,$cix,$strx);
$strx=str_replace($ci2,$ciy,$strx);
}
else{$ci3=$sz[$j];
$cip='[color=red]'.$ci3.'[/color]';
$strx=str_replace($ci3,$cip,$strx); }
}
else{$ci4=$sz[$j];
$ciz='[color=red]'.$ci4.'[/color]';
$strx=str_replace($ci4,$ciz,$strx); }
}
return $strx;
}
$strin="连云港魅族mp3";
$ar[0]="连云";
$ar[1]="云港";
$ar[2]="mp3";
echo $strin=xhhs($strin,$ar);
?>
可是问题就来了,怎么想也想不通调用上面的$ar数组后那个“港”字就是不显红,按理应该显红的。。
如果有兴趣的同仁,可把代码复制过去,调试一下,,我都郁闷死了,如有看出有错误的,还望告知一下。。