/**
*
* 中英混合字符串长度判断
* @param unknown_type $str
* @param unknown_type $charset
*/
functionstrLength($str,$charset='utf-8') {
if($charset=='utf-8')
$str= iconv ('utf-8','gb2312',$str);
$num=strlen($str);
$cnNum= 0;
for($i= 0;$i<$num;$i++) {
if(ord (substr($str,$i+ 1, 1 ) ) > 127) {
$cnNum++;
$i++;
}
}
$enNum=$num- ($cnNum* 2);
$number= ($enNum/ 2) +$cnNum;
returnceil($number);
}
/**
*
* 中英混合的字符串截取
* @param unknown_type $sourcestr
* @param unknown_type $cutlength
*/
functioncut_str($sourcestr,$cutlength) {
$returnstr=''
$i= 0;
$n= 0;
$str_length=strlen($sourcestr);//字符串的字节数
while( ($n<$cutlength)and($i<=$str_length) ) {
$temp_str=substr($sourcestr,$i, 1 );
$ascnum= Ord ($temp_str);//得到字符串中第$i位字符的ascii码
if($ascnum>= 224)//如果ASCII位高与224,
{
$returnstr=$returnstr.substr($sourcestr,$i, 3 );//根据UTF-8编码规范,将3个连续的字符计为单个字符
$i=$i+ 3;//实际Byte计为3
$n++;//字串长度计1
}elseif($ascnum>= 192)//如果ASCII位高与192,
{
$returnstr=$returnstr.substr($sourcestr,$i, 2 );//根据UTF-8编码规范,将2个连续的字符计为单个字符
$i=$i+ 2;//实际Byte计为2
$n++;//字串长度计1
}elseif($ascnum>= 65 &&$ascnum<= 90)//如果是大写字母,
{
$returnstr=$returnstr.substr($sourcestr,$i, 1 );
$i=$i+ 1;//实际的Byte数仍计1个
$n++;//但考虑整体美观,大写字母计成一个高位字符
}else//其他情况下,包括小写字母和半角标点符号,
{
$returnstr=$returnstr.substr($sourcestr,$i, 1 );
$i=$i+ 1;//实际的Byte数计1个
$n=$n+ 0.5;//小写字母和半角标点等与半个高位字符宽...
}
}
if($str_length>$cutlength) {
$returnstr=$returnstr."...";//超过长度时在尾处加上省略号
}
return$returnstr;
}
代码如下 | 复制代码 |
敢达决战官方正版 安卓版v6.7.9
下载敢达决战 安卓版v6.7.9
下载像素火影骨架佐助 (Perseverance Fire Shadow)手机版v1.16
下载要塞英雄 安卓版v33.20.0-39082670-Android
下载梦想城镇vivo最新版本 安卓版v12.0.1
梦想城镇vivo版是这款卡通风模拟经营类手游的渠道服版本,玩
怦然心动的瞬间 安卓版v1.0
怦然心动的瞬间是一款真人向的恋爱互动游戏,在游戏中玩家将扮演
曼尼汉堡店游戏 安卓版v1.0.3
曼尼汉堡店是一款非常好玩的精品恐怖类型冒险游戏,在这款游戏中
现代总统模拟器去广告版 安卓版v1.0.46
现代总统模拟器是一款休闲养成类游戏,可能对于不少的玩家来说都
现代总统模拟器付费完整版 安卓版v1.0.46
现代总统模拟器高级版在商店是需要付费的,相对于普通版本,高级