生成一个不超过指定长度(以字节计算)的字符串函数
时间:2007-02-17 来源:PHP爱好者
生成一个不超过指定长度(以字节计算)的字符串函数
关键词:PHP
功能:
将一个字符串转换成不超过特定长度(以字节计算)的字符串
返回:
转换后不超过指定长度(以字节计算)的字符串
参数:
$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) . '
';
}
}
*/
?>
php爱好者站 http://www.phpfans.net Linux|Apache|IIS.
关键词:PHP
功能:
将一个字符串转换成不超过特定长度(以字节计算)的字符串
返回:
转换后不超过指定长度(以字节计算)的字符串
参数:
$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) . '
';
}
}
*/
?>
php爱好者站 http://www.phpfans.net Linux|Apache|IIS.
相关阅读 更多 +