zoukankan      html  css  js  c++  java
  • php截取字符串函数

     1 public function sub_string($str, $len, $charset="utf-8")
     2 {
     3    if( !is_numeric($len) or $len <= 0) {//如果截取长度小于等于
     4        return "";      //返回空
     5    }
     6    $sLen = strlen($str);    //获取原始字串长度
     7    if( $len >= $sLen ) {   //如果截取长度大于总字符串长度
     8        return $str;     //直接返回当前字符串
     9    }
    10    if ( strtolower($charset) == "utf-8" ) { //如果编码为为utf-8
    11        $len_step = 3;      //则中文字符长度为3
    12    } else {        //如果不是
    13        $len_step = 2;      //如果是gb2312或big5编码,则中文字符长度为2
    14    }
    15    //执行截取操作
    16    $len_i = 0;   //初始化计数当前已截取的字符串个数,此值为字符串的个数值
    17    $substr_len = 0; //初始化应该要截取的总字节数
    18    for( $i=0; $i < $sLen; $i++ ) { //开始循环
    19        if ( $len_i >= $len ) break; //总截取$len个字符串后,停止循环
    20        if( ord(substr($str,$i,1)) > 0xa0 ) { //如果是中文字符串
    21            $i += $len_step - 1;   //
    22            $substr_len += $len_step;  //当前总字节数加上相应编码的中文字符长度
    23        } else {        //如果字符不是中文
    24            $substr_len ++;     //加1个字节
    25        }
    26        $len_i ++;     //已经截取字符串个数增加
    27    }
    28    $result_str = substr($str,0,$substr_len ); //获取结果
    29    return $result_str.'...';    //返回结果
    30 }
  • 相关阅读:
    Java生产者与消费者(下)
    Java生产者与消费者(上)
    Java中的继承和接口
    syslog(),closelog()与openlog()--日志操作函数
    Nagle算法
    TCP_NODELAY详解
    Linux "零拷贝" sendfile函数中文说明及实际操作分析
    pdflush的工作原理
    proc/sys/net/ipv4/下各项的意义
    求最低价格
  • 原文地址:https://www.cnblogs.com/niejunlei/p/5318378.html
Copyright © 2011-2022 走看看