二个php截取字符串的函数

发布时间:2020-11-12编辑:脚本学堂
分享二个截取字符串的php函数,可以自动识别中文,用于截取文章中的内容很不错,有需要的朋友参考下。

例1,php截取字符串函数。
 

复制代码 代码示例:
<?php
header ( "content-type:text/html; charset=utf-8" );
function strcut($string, $length, $dot = '...',$charset='utf-8')
{
  $strlen = strlen($string);
  if($strlen <= $length) return $string;
  $strcut = '';
  if(strtolower($charset) == 'utf-8')
  {
  $n = $tn = $noc = 0;
  while($n < $strlen)
  {
  $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 += 3;
  } elseif(240 <= $t && $t <= 247) {
  $tn = 4; $n += 4; $noc += 4;
  } elseif(248 <= $t && $t <= 251) {
  $tn = 5; $n += 5; $noc += 5;
  } elseif($t == 252 || $t == 253) 
  {
    $tn = 6; $n += 6; $noc += 6;
  }
  else 
  {
  $n++;
  }
  if($noc >= $length) break;
  }
  if($noc > $length) $n -= $tn;
  $strcut = substr($string, 0, $n);
  } //脚本学堂 www.jb200.com
  else
  {
    $dotlen = strlen($dot); 
    $maxi = $length - $dotlen - 1;
    for($i = 0; $i < $maxi; $i++)
    {
      $strcut .= ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i];
    }
  }
  var_dump($strcut);
  return $strcut;
    }
    echo "jjjkkklll";
    echo strcut("向kk向向向kk向向向kk向向kkklllllllllllmmmmmmmmmmmmmmm向东阳",12)

例2,截取中文字符串函数。
 

复制代码 代码示例:
<?php
function splitstr($str,$len){
if($len<=0){
  return false;
}
 else{
  $slen=strlen($str);
  if($len>=$slen)
  return $str;
  else{
  for($i=0;$i<($len-1);$i++){
    if(ord(substr($str,$i,1))>0xa0)
  $i++;
  }
  if($i>=$len)
    return substr($str,0,$len);
elseif(ord(substr($str,$i,1))>0xa0)
    return substr($str,0,$len-1);
  else
    return substr($str,0,$len);
  }
}
}
相关链接: