php截取字符串长度的小函数

发布时间:2020-12-15编辑:脚本学堂
一个截取字符串长度的php函数,用于截取指定长度的字符串,可以指定后缀名,字符串开始位置,字符串编码等,需要的朋友参考下。

例子,php截取字符串函数代码。
 

复制代码 代码示例:
<?php
/**
 * @@Description 截取字符串
 * @param String(字符串) $key
 * @param Int(字符串截取长度) $length
 * @param String(后缀eg:...) $postfix
 * @param Int(字符串开始位置) $start
 * @param String(编码) $code
 * @return String
 */
function strCut( $key, $length = 1, $postfix = "...", $start = 0, $code = 'UTF-8' ) {
 if( 'UTF-8' == $code ) {
  $pattern = "/[x01-x7f]|[xc2-xdf][x80-xbf]|xe0[xa0-xbf][x80-xbf]|[xe1-xef][x80-xbf][x80-xbf]|xf0[x90-xbf][x80-xbf][x80-xbf]|[xf1-xf7][x80-xbf][x80-xbf][x80-xbf]/";
  preg_match_all( $pattern, $key, $result );
  if( count( $result[0] ) - $start > $length ) {
   return join( '', array_slice( $result[0], $start, $length ) ).$postfix;
  }
  return join( '', array_slice( $result[0], $start, $length ) );
 }else{
  $start = $start * 2;
  $length = $length * 2;
  $strlen = strlen( $key );
  $tmpstr = '';
  for ( $i = 0; $i < $strlen; $i++ ) {
   if( $i >= $start && $i < ($start + $length) ) {
    if( ord( substr( $key, $i, 1 ) ) > 129 ) {
     $tmpstr.= substr( $key, $i, 2 );
    }else{
     $tmpstr.= substr( $key, $i, 1 );
    }
   }
   if( ord( substr( $key, $i, 1 ) ) > 129 ) {
    $i++;
   }
  }
  if( strlen( $tmpstr ) < $strlen ) {
   $tmpstr.= $postfix;
  }
  return $tmpstr;
 }
}