discuz截取函数

<? php
字符串截取函数

$cutstr   =  cutstr( ' 截取我,hahahahahaaha ' , ' 3 ' );



function  cutstr( $string ,   $length ,   $dot   =   '  ... ' ) {
global   $charset ;

if ( strlen ( $string <=   $length ) {
return   $string ;
}

$string   =   str_replace ( array ( ' & ' ,   ' " ' ,   ' < ' ,   ' > ' ) ,   array ( ' & ' ,   ' " ' ,   ' < ' ,   ' > ' ) ,   $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   -   strlen ( $dot -   1 $i ++ ) {
$strcut   .=   ord ( $string [ $i ])  >   127   ?   $string [ $i ] . $string [ ++ $i :   $string [ $i ];
}
}

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

return   $strcut . $dot ;
}
function  daddslashes( $string ,   $force   =   0 ) {
! defined ( ' MAGIC_QUOTES_GPC ' &&   define ( ' MAGIC_QUOTES_GPC ' ,   get_magic_quotes_gpc ());
if ( ! MAGIC_QUOTES_GPC  ||   $force ) {
if ( is_array ( $string )) {
foreach ( $string   as   $key   =>   $val ) {
$string [ $key =  daddslashes( $val ,   $force );
}
else  {
$string   =   addslashes ( $string );
}
}
return   $string ;
}
?>
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值