根据中文裁减字符串函数的php代码

原创 2013年12月04日 09:54:52
裁减字符串函数有很多,但是根据中文裁减字符串的却很少,在本文将为大家介绍下使用php是如何实现的,感兴趣的朋友不要错过
 代码如下:

define(CHARSET, 'UTF-8'); // 系统默认编码

/**
* 根据中文裁减字符串
* @param $string - 字符串
* @param $length - 长度
* @param $doc - 缩略后缀
* @return 返回带省略号被裁减好的字符串
*/
function cutstr( $string, $length, $dot = '...' ) {
if ( strlen( $string ) <= $length ) {
return $string;
}
$pre = chr( 1 );
$end = chr( 1 );
$string = str_replace( array( '&', '"', '<', '>' ), array( $pre . '&' . $end, $pre . '"' . $end, $pre . '<' . $end, $pre . '>' . $end ), $string );
$strcut = '';
if ( strtolower( CHARSET ) == 'utf-8' ) {
$n = $tn = $noc = 0;
while ( $n < strlen( $string ) ) {
$t = ord( $string[$n] );
if ( $t == 9 || $t == 10 || (32 <= $t && $t <= 126) ) {
$tn = 1;
$n++;
$noc++;
} elseif ( 194 <= $t && $t <= 223 ) {
$tn = 2;
$n += 2;
$noc += 2;
} elseif ( 224 <= $t && $t <= 239 ) {
$tn = 3;
$n += 3;
$noc += 2;
} elseif ( 240 <= $t && $t <= 247 ) {
$tn = 4;
$n += 4;
$noc += 2;
} elseif ( 248 <= $t && $t <= 251 ) {
$tn = 5;
$n += 5;
$noc += 2;
} elseif ( $t == 252 || $t == 253 ) {
$tn = 6;
$n += 6;
$noc += 2;
} else {
$n++;
}
if ( $noc >= $length ) {
break;
}
}
if ( $noc > $length ) {
$n -= $tn;
}
$strcut = substr( $string, 0, $n );
} else {
for ( $i = 0; $i < $length; $i++ ) {
$strcut .= ord( $string[$i] ) > 127 ? $string[$i] . $string[++$i] : $string[$i];
}

}

//unity3d http://www.unitymanual.com/

$strcut = str_replace( array( $pre . '&' . $end, $pre . '"' . $end, $pre . '<' . $end, $pre . '>' . $end ), array( '&', '"', '<', '>' ), $strcut );

$pos = strrpos( $strcut, chr( 1 ) );
if ( $pos !== false ) {
$strcut = substr( $strcut, 0, $pos );
}
return $strcut . $dot;
}

如何执行字符串的PHP代码

最近因使用php开发项目需要,引出一个议题:如何执行字符串的php代码(php和html混写)。   注:传统情况下,php代码存储在文件中,直接运行文件即可。以下讨论的情况是,如果php代码是从数...

在PHP代码中处理JSON 格式的字符串【或用file_get_content得到的数据】

$url='http://aaa.com/apimobile/getmemberphoto?memid='.$id.'&num='.$num.'&sign='.$sign;  $modelMember...

随机字符串生成图片 PHP代码

  • scbzdj
  • scbzdj
  • 2011年08月22日 17:53
  • 519

中文转拼音的PHP代码

  • 2013年06月07日 12:18
  • 1.14MB
  • 下载

调用发送短信 Monxin专用(PHP代码函数)

//调用发送短信 Monxin专用(PHP代码函数) //本代码基于Monxin 运行 //代码来源:Monxin ./config/functions.php function send_sms(...

更新导航条静态数据 Monxin专用(PHP代码函数)

//更新导航条静态数据 Monxin专用(PHP代码函数) //本代码基于Monxin 运行 //代码来源:Monxin ./config/functions.php function update...

PHP代码基本数据结构和php内置函数

//-------------------- // 基本数据结构 //--------------------//二分查找(数组里查找某个元素) function bin_sch($array,...

php中计算中文字符串长度、截取中文字符串的函数代码

在PHP中,我们都知道有专门的mb_substr和mb_strlen函数,可以对中文进行截取和计算长度,但是,由于这些函数并非PHP的核心函数,所以,它们常常有可能没有开启。当然,如果是用的自己的服务...

(实用篇)php中计算中文字符串长度、截取中文字符串的函数代码

在PHP中,我们都知道有专门的mb_substr和mb_strlen函数,可以对中文进行截取和计算长度,但是,由于这些函数并非PHP的核心函数,所以,它们常常有可能没有开启。当然,如果是用的自己的服务...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:根据中文裁减字符串函数的php代码
举报原因:
原因补充:

(最多只允许输入30个字)