function subbrief($brief,$list_brief_num) { if(strlen($brief)<=$list_brief_num) { $brief=$brief; } else { $parity= 0; for($i=0;$i<$list_brief_num;$i++) { $temp_str=substr($brief,$i,1); if(Ord($temp_str)>127) $parity+=1; //通过for循环检验字符ASCII值是否>127,大于127,$parity增加1 。飞飞Asp技术!乐园 } if($parity%2==1) { $brief=substr($brief,0,($list_brief_num-1))."..."; } else { $brief=substr($brief,0,$list_brief_num)."..."; } } return $brief; }
//$brief字符串变量,$list_brief_num为截取字符数,$parity用于记录字符串中的码值大于127的字符数。
//ord()函式传回字元的 ASCII (美国国家标准交换码) 序数值,汉字的ASCII值均大于127。飞飞A,sp技术乐园
通过该函数,可以将含有汉字的字符串($brief),按照指定长度($list_brief_num)处理。例如:武汉一六层楼发生大火,12名消防战士殉职(原字符串),处理后为“武汉一六层楼发生大火,12名消防...”(截取长度为30个字符)。
|