发新话题
打印

想不通的替代字符串函数???

想不通的替代字符串函数???

最近需要用到显红处理,但为了方便就草草写了个单个字的显红替换。。代码如下:
(注:所以调用的数组只要是中文的就只是两位的,用的是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数组后那个“港”字就是不显红,按理应该显红的。。
如果有兴趣的同仁,可把代码复制过去,调试一下,,我都郁闷死了,如有看出有错误的,还望告知一下。。

TOP

Parse error: syntax error, unexpected T_ELSE in G:\AppServ\www\xian.php on line 23

我的显示这个。。 else{$ci3=$sz[$j]; 这里是23行
世界极静  只有灵魂独舞--------世界上没有任何事可以替代坚持。

我们都需要论坛 论坛也同时需要我们的支持

TOP

大哥你贴错了 23行的else  应该对应IF 。。。。汗。。你贴到if里面去了

我的也是

“连云”变红。。。
附件: 您所在的用户组无法下载或查看附件
世界极静  只有灵魂独舞--------世界上没有任何事可以替代坚持。

我们都需要论坛 论坛也同时需要我们的支持

TOP

$strin="连云港魅族mp3";
$ar[0]="连云港";
$ar[1]="港魅族";
$ar[2]="mp3";

兄弟这里这样写行不????
附件: 您所在的用户组无法下载或查看附件
世界极静  只有灵魂独舞--------世界上没有任何事可以替代坚持。

我们都需要论坛 论坛也同时需要我们的支持

TOP

我的运行结果是:

连云港魅族mp3

不过你的函数中有一个地方不是很明白
[Copy to clipboard]
PHP CODE:
if($sz[$j]{0} >127)

这里是什么意思?
假如此时$j=0
那么就变成
[Copy to clipboard]
PHP CODE:
if($sz[0]{0} >127)

也就是
[Copy to clipboard]
PHP CODE:
if(连云{0} >127)

这个是什么东西???


交流QQ群2:16142493
智能手机软件下载
PHP新手不可错过一帖
PHP新手如何获得积分
论坛需要你,我们大家需要你!

TOP

感谢回复!!!!

所老大的提示让我找到错误了,,哈哈,不好意思,漏掉了个字符串处理函数。。
if($sz[$j]{0} >127)
//得改成:
if(ord($sz[$j]{0})>127)


这样写我想大家就明白了,那个用来判断传过来的数组是中文的还是非中文的。。

非常感谢“废墟”和“所罗门”的关注。。还有就是在我这打开论坛有些慢不知是何原因,是从最近开始的,以前不是这样的。。。对了那个高度显示也不错,可是我不会弄。。


[ 本帖最后由 zimu1985 于 2008-3-21 15:16 编辑 ]

TOP

解决的好快哦,我粘贴的时候还有乱码嘞

TOP

发新话题