php中文截取字符串函数(很好用)

发布时间:2020-12-18编辑:脚本学堂
分享一例php截取中文字符串的函数,用到了php正则,功能很不错,有需要的朋友参考下吧。

本节内容:
php中文截取字符窜函数

例子:
 

复制代码 代码示例:

<?php
/**
* 中文字符串截取函数
* by www.jb200.com
*/
function cut_str($string,$sublen,$filter=true,$start=0,$code='UTF-8'){
 if($filter) $string=Html2Text($string);
 if($code=='UTF-8'){
  $pa="/[x01-x7f]|[xc2-xdf][x80-xbf]|[xe0-xef][x80-xbf]{2}|[xf0-xff][x80-xbf]{3}/";
  preg_match_all($pa,$string,$t_string);
  if(count($t_string[0])-$start>$sublen) return join('',array_slice($t_string[0],$start,$sublen))."...";
  return join('',array_slice($t_string[0],$start,$sublen));
 }else{
  $start=$start*2;
  $sublen=$sublen*2;
  $strlen=strlen($string);
  $tmpstr='';
  for($i=0;$i<$strlen;$i++){
   if($i>=$start&&$i<($start+$sublen)){
    if(ord(substr($string,$i,1))>129){
     $tmpstr.=substr($string,$i,2);
    }else{
     $tmpstr.=substr($string,$i,1);
    }
   }
   if(ord(substr($string,$i,1))>129) $i++;
  }
  if(strlen($tmpstr)<$strlen ) $tmpstr.="...";
  return $tmpstr;
 }
}

//html转换函数
function Html2Text($str){
 $str = preg_replace("/<sty(.*)/style>|<scr(.*)/script>|<!--(.*)-->/isU","",$str);
 $alltext = "";
 $start = 1;
 for($i=0;$i<strlen($str);$i++){
  if($start==0 && $str[$i]==">"){
   $start = 1;
  }else if($start==1){
   if($str[$i]=="<"){
    $start = 0;
    $alltext .= " ";
   }else if(ord($str[$i])>31){
    $alltext .= $str[$i];
   }
  }
 }
 $alltext = str_replace(" "," ",$alltext);
 $alltext = preg_replace("/&([^;&]*)(;|&)/","",$alltext);
 $alltext = preg_replace("/[ ]+/s"," ",$alltext);
 return $alltext;
}

您可能感兴趣的文章:
PHP中文字符串截取的四个函数
php中文支持函数 php中文截取字符串函数 PHP中文字符串翻转
php中文字符截取函数(自用)
php 截取指定长度字符串的代码分享
php中文截取字符串mb_substr的用法
php字符串截取substr函数简介
php中substr字符串截取函数实例详解
php中substr字符串截取函数的用法示例
php截取中文的函数utf_substr
支持中文的php字符串截取函数实例
php截取中文字符串的二个函数(iconv_substr和mb_substr)
php 字符串截取函数(可以自动清除网页标签)
php中文字符串截取函数支持多种编码
四个php中文字符串截取函数
php中文字符串截取 php截取中文字符串的代码
php中文字符串截取 php截取中文字符串的函数
php中文字符串截取(mb_substr)实例
php计算中文字符串长度、截取中文字符串的函数
截取中文字符的函数-csubstr
PHP中文字符串截取函数