| 关键词: 字符串 字节 strlen len 长度 str fixlenstr 一个 while count |
生成一个不超过指定长度(以字节计算)的字符串函数 功能: 将一个字符串转换成不超过特定长度(以字节计算)的字符串 返回: 转换后不超过指定长度(以字节计算)的字符串 参数: $str 待转换的字符串 $len 最大长度(以字节计算) */ function fixlenstr($str,$len){ $str = (string)$str; $len = (int)$len; $strlen = strlen($str); if($len>$strlen) $len = $strlen; $i = 0; $fixlen = 0; while($i<$len){ $chr = $str[$i]; $i++; if(ord($chr)<0x80) $fixlen++; elseif($i<$len){ $i++; $fixlen += 2; } } return substr($str,0,$fixlen); } /*测试 $test = array( '工了a以b在d有e' => array('ab',-2,0,1,'1',3,4,5,6,14,16) ); while(list($str,$len)=each($test)){ echo $str . ' -------------------------------------------------------------------------------- '; $count = count($len); for($i=0;$i<$count;$i++){ $fixlenstr = fixlenstr($str,$len[$i]); echo $len[$i] . ' ==> ' . $fixlenstr . ' ==> ' . strlen($fixlenstr) . ' '; } } */ ?> |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|