也许过去我不是一个好孩子,但现在我要做个好爸爸...... 注册 | 登陆

截取固定长度UTF-8字符串的PHP函数

  需要用到用PHP截取字符串,以往用的都是substr,突然发现不灵了,因为这次戒烟如你使用了UTF-8编码,经过查资料,原来UTF-8表示汉字是3个字符,而且据说还有两个字符的,没看懂,但想到一个汉字占两位,一个英文占一位,干脆用显示长度来计算吧!

PHP代码
  1. function iSubStr ($str$len) {   
  2.     $i = 0;   
  3.     $tlen = 0;   
  4.     $tstr = '';   
  5.     while ($tlen < $len) {   
  6.         $chr = mb_substr($str$i, 1, 'utf8');   
  7.         $chrLen = ord($chr) > 127 ? 2 : 1;   
  8.         if ($tlen + $chrLen > $lenbreak;   
  9.         $tstr .= $chr;   
  10.         $tlen += $chrLen;   
  11.         $i ++;   
  12.     }   
  13.     if ($tstr != $str) {   
  14.         $tstr .= '...';   
  15.     }   
  16.     return $tstr;   
  17. }  

  该代码仅适用于UTF-8编码的字符串,输入参数分别是原字符串和长度,输出是截取后的字符串。

Tags: php, utf-8

« 上一篇 | 下一篇 »

只显示5条记录相关文章

FPDF代码研究(Part 5) (浏览: 30548, 评论: 1)
FPDF代码研究(Part 4) (浏览: 11607, 评论: 1)
FPDF代码研究(Part 3) (浏览: 11839, 评论: 0)
FPDF代码研究(Part 2,构造函数) (浏览: 22515, 评论: 0)
FPDF代码研究(Part 1,类的属性) (浏览: 11081, 评论: 0)

2条记录访客评论

好像不对吧,

为什么我不可以额.

Post by 北大青鸟 on 2009, February 22, 11:46 PM 引用此文发表评论 #1

先收藏,然后再慢慢研究!

Post by QQ游戏 on 2009, February 23, 4:27 PM 引用此文发表评论 #2


发表评论

评论内容 (必填):