萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> php 中文字條截取代碼

php 中文字條截取代碼

這裡提供了一款php 中文字符截取代碼哦,包括對中文,asc,utf-8等字符進行截取功能哦。

//中文截取2,單字節截取模式
//如果是request的內容,必須使用這個函數
function cn_substrR($str,$slen,$startdd=0)
{
 $str = cn_substr(stripslashes($str),$slen,$startdd);
 return addslashes($str);
}

//中文截取2,單字節截取模式
function cn_substr($str,$slen,$startdd=0)
{
 global $cfg_soft_lang;
 if($cfg_soft_lang=='utf-8')
 {
  return cn_substr_utf8($str,$slen,$startdd);
 }
 $restr = '';
 $c = '';
 $str_len = strlen($str);
 if($str_len < $startdd+1)
 {
  return '';
 }
 if($str_len < $startdd + $slen || $slen==0)
 {
  $slen = $str_len - $startdd;
 }
 $enddd = $startdd + $slen - 1;
 for($i=0;$i<$str_len;$i++)
 {
  if($startdd==0)
  {
   $restr .= $c;
  }
  else if($i > $startdd)
  {
   $restr .= $c;
  }

  if(ord($str[$i])>0x80)
  {
   if($str_len>$i+1)
   {
    $c = $str[$i].$str[$i+1];
   }
   $i++;
  }
  else
  {
   $c = $str[$i];
  }

  if($i >= $enddd)
  {
   if(strlen($restr)+strlen($c)>$slen)
   {
    break;
   }
   else
   {
    $restr .= $c;
    break;
   }
  }
 }
 return $restr;
}

//utf-8中文截取,單字節截取模式
function cn_substr_utf8($str, $length, $start=0)
{
 if(strlen($str) < $start+1)
 {
  return '';
 }
 preg_match_all("/./su", $str, $ar);
 $str = '';
 $tstr = '';

 //為了兼容mysql4.1以下版本,與數據庫varchar一致,這裡使用按字節截取
 for($i=0; isset($ar[0][$i]); $i++)
 {
  if(strlen($tstr) < $start)
  {
   $tstr .= $ar[0][$i];
  }
  else
  {
   if(strlen($str) < $length + strlen($ar[0][$i]) )
   {
    $str .= $ar[0][$i];
   }
   else
   {
    break;
   }
  }
 }
 return $str;
}

copyright © 萬盛學電腦網 all rights reserved