主题:  字符串截取问题

绯雨

职务:普通成员
等级:2
金币:1.0
发贴:317
#12002/4/19 16:39:34
if (strlen($title)>20) {
echo substr($title,1,20)."...";
}
else {
echo $title;
}
?>

这样截出的文字,如果是中文和英文混合字段的话,显示出来的都是乱码,该如何操作,才能正常显示。谢谢。

编辑历史:[这消息被绯雨编辑过(编辑时间2002-04-19 16:39:55)]


5D荣誉斑竹

职务:普通成员
等级:2
金币:1.0
发贴:400
#22002/4/21 16:05:39
老问题了.好像有很多解决办法.你到 phpuser.com 去找找看
还有 www.php2000.com
我的站上好像也有把.

奥索肯定有,可惜...



浮游

职务:普通成员
等级:2
金币:1.0
发贴:349
#32002/4/23 10:10:18
felixding在上个帖子中说
引用:
老问题了.好像有很多解决办法.你到 phpuser.com 去找找看
还有 www.php2000.com
我的站上好像也有把.

奥索肯定有,可惜...


老大,你再贴段源程序吧,实在没有找到啊!



绯雨

职务:普通成员
等级:2
金币:1.0
发贴:317
#42002/4/23 11:33:52
是呀,大哥,我头都看晕了,也没找到呀。拜托了。贴出来来看看啦。



浮游

职务:普通成员
等级:2
金币:1.0
发贴:349
#52002/4/23 11:44:16
绯雨在上个帖子中说
引用:
是呀,大哥,我头都看晕了,也没找到呀。拜托了。贴出来来看看啦。


绯雨兄弟,看来只有我们自力更生了,自己去想办法,我有一条思路,应该是从正则表达式入手的,判断数字及字母!



绯雨

职务:普通成员
等级:2
金币:1.0
发贴:317
#62002/4/23 11:57:00
恩,试试先,如果有结果的话,别忘了贴出来呀。



浮游

职务:普通成员
等级:2
金币:1.0
发贴:349
#72002/4/23 12:23:57
好的!



5D荣誉斑竹

职务:普通成员
等级:2
金币:1.0
发贴:400
#82002/4/25 19:09:14
抱歉,让兄弟们受难了
php2000.com 连不上. 我也没找到,但的确看到过解决办法.

最近有些很不开心的事情,恕我无心帮忙了



ahxiao

职务:普通成员
等级:1
金币:10.0
发贴:304
#92002/4/26 13:12:16
帮你问了一下。

$titlelen=20;
$len = strlen($title);
if ($len <= $titlelen)
$title = $title;
else{
$title = substr($title,"0","$titlelen");
$parity= 0;

for($i=0;$i<$titlelen;$i++){
$temp_str=substr($title,$i,1);
if(Ord($temp_str)>127)
$parity+=1;
}
if($parity%2==1)
$title=substr($title,0,($titlelen-1))."...";
else
$title=substr($title,0,$titlelen)."...";
}





浮游

职务:普通成员
等级:2
金币:1.0
发贴:349
#102002/4/27 13:25:26
felixding在上个帖子中说
引用:
抱歉,让兄弟们受难了
php2000.com 连不上. 我也没找到,但的确看到过解决办法.

最近有些很不开心的事情,恕我无心帮忙了


不好意思,我也有点过激了,向你道歉



5D荣誉斑竹

职务:普通成员
等级:2
金币:1.0
发贴:400
#112002/4/27 15:50:09
哈,没有没有,是我失职

我过段时间会好的



浮游

职务:普通成员
等级:2
金币:1.0
发贴:349
#122002/5/7 12:52:06
其实这段代码很简单的,主要就在ord这个函数上,为什么就没有想到呢?



5D荣誉斑竹

职务:普通成员
等级:2
金币:1.0
发贴:400
#132002/5/7 15:56:14
ord()是获取字符的ascll吗?



浮游

职务:普通成员
等级:2
金币:1.0
发贴:349
#142002/5/7 18:13:27
是的,判断字符的Ascll值是否小于127就对了,因为数字及英文字符的ascll的值就小于127,而汉字用两个字节表示!

编辑历史:[这消息被flashdesign编辑过(编辑时间2002-05-07 18:14:16)]