<?
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 ;
}
?>
字符串截取函数
$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 ;
}
?>