/** - @UTF-8中文字符截断程序
- @http://bbs.it-home.org
- */
- $str = "321这是测试字符串";
- $str1 = "()()";
- echo subUTF8str($str,0,3)."
"; - echo subUTF8str($str,0,4)."
"; - echo subUTF8str($str1,0,4)."
"; - echo subUTF8str($str1,0,10)."
"; function subUTF8str($str,$start=0,$length=80){ - $cur_len = 0; //人理解的字符串长度
- $all_len = strlen($str); //机器理解字符串长度
- if($length > $all_len)
- {
- return $str;
- }
- for($i = 0;$i < $all_len;)
- {
- if($cur_len == $start)
- {
- break;
- }
- if (ord($str[$i]) > 127)
- {
- $i += 3;
- }else{
- $i += 1;
- }
- $cur_len ++;
- }
- $start_pos = $i;
- $temp_pos = $cur_len;
- for(;$cur_len - $temp_pos < $length;)
- {
- if($i >= $all_len)
- break;
- if (ord($str[$i]) > 127)
- {
- $i += 3;
- }else{
- $i += 1;
- }
- $cur_len ++;
- }
- $end_pos = $i;
- return substr($str,$start_pos,$end_pos);
- }
- ?>
-
php自带的函数库中有很多处理字符串的函数,建议大家去深入研究下,多多实践。 |