生成一个不超过指定长度的字符串函数
功能:
将一个字符串转换成不超过特定长度(以字节计算)的字符串
返回:
转换后不超过指定长度(以字节计算)的字符串
参数:
$str 待转换的字符串
$len 最大长度(以字节计算)
<?php
*/
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 . '<hr>';
$count = count($len);
for($i=0;$i<$count;$i++){
$fixlenstr = fixlenstr($str,$len[$i]);
echo $len[$i] . ' ==> ' . $fixlenstr . ' ==> ' . strlen($fixlenstr) . '<br>';
}
}
*/
?>