php utf8编码的字符串截取方法

经测试代码如下:

/**
 * 截取编码为utf8的字符串
 *
 * @param string $strings 预处理字符串
 * @param int $start 开始处 eg:0
 * @param int $length 截取长度
 * @author 编程之家 jb51.cc jb51.cc
 */
function subString($strings,$start,$length) {
 if (function_exists('mb_substr') && function_exists('mb_strlen')) {
  $sub_str = mb_substr($strings,$length,'utf8');
  return mb_strlen($sub_str,'utf8') < mb_strlen($strings,'utf8') ? $sub_str . '...' : $sub_str;
 }
 $str = substr($strings,$length);
 $char = 0;
 for ($i = 0; $i < strlen($str); $i++) {
  if (ord($str[$i]) >= 128)
   $char++;
 }
 $str2 = substr($strings,$length + 1);
 $str3 = substr($strings,$length + 2);
 if ($char % 3 == 1) {
  if ($length <= strlen($strings)) {
   $str3 = $str3 .= '...';
  }
  return $str3;
 }
 if ($char % 3 == 2) {
  if ($length <= strlen($strings)) {
   $str2 = $str2 .= '...';
  }
  return $str2;
 }
 if ($char % 3 == 0) {
  if ($length <= strlen($strings)) {
   $str = $str .= '...';
  }
  return $str;
 }
}



/***   来自编程之家 jb51.cc(jb51.cc)   ***/

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...