中英文字符串截取类

<?php

/**
 * description:中英文字符串截取
 * @author :SunsCheung
 * @date:2015-09-24
 */
class Helper{
    public static function truncate_utf8_string($string, $length, $etc = ‘...‘)
    {
        $result = ‘‘;
        $string = html_entity_decode(trim(strip_tags($string)), ENT_QUOTES, ‘UTF-8‘);
        $strlen = strlen($string);
        for ($i = 0; (($i < $strlen) && ($length > 0)); $i++)
        {
            if ($number = strpos(str_pad(decbin(ord(substr($string, $i, 1))), 8, ‘0‘, STR_PAD_LEFT), ‘0‘))
            {
                if ($length < 1.0)
                {
                    break;
                }
                $result .= substr($string, $i, $number);
                $length -= 1.0;
                $i += $number - 1;
            }
            else
            {
                $result .= substr($string, $i, 1);
                $length -= 0.5;
            }
        }
        $result = htmlspecialchars($result, ENT_QUOTES, ‘UTF-8‘);
        if ($i < $strlen)
        {
            $result .= $etc;
        }
        return $result;
    }
}
时间: 2024-10-25 07:51:25

中英文字符串截取类的相关文章

JavaScript中英文 字符串截取

/** * 中英文字符串截取 * @param str 要截取的字符串 * @param len 要截取的长度 * @param hasDot 是否在字符串末尾增加'...' * @returns {string} * */ function mySubString (str, len, hasDot){ var newLength = 0; var newStr = ""; var chineseRegex = /[^\x00-\xff]/g; var singleChar = &q

Javascript 中英文字符串截取

1 /** 2 * 中英文字符串截取 3 * @param str 要截取的字符串 4 * @param len 要截取的长度 5 * @param hasDot 是否在字符串末尾增加'...' 6 * @returns {string} 7 * 8 */ 9 10 function mySubString (str, len, hasDot){ 11 var newLength = 0; 12 var newStr = ""; 13 var chineseRegex = /[^\x0

utf-8 中英文字符串截取

http://www.nowamagic.net/php/php_SubMixedString.php http://waiting.iteye.com/blog/581888 function get_word($string, $length, $dot = '..',$charset='gbk') {          if(strlen($string) <= $length) {         return $string;     }     $string = str_repla

java 字符串截取类 区分中文、英文、数字、标点符号

package com.founder.fix.ims; /** * @author WANGYUTAO * 操作字符串 */ public class SubString { // public static void main(String[] args) { // String str = "我爱阿斯顿发生大法师大法上帝发誓地方时代发生大法师大法金"; // String str1 = "sdfdssfsfdsf把dsdafdafafdsfadas"; //

php 中英文字符串截取,字符串长度

在做PHP开发的时候,由于我国的语言环境问题,所以我们常常需要对中文进行处理.在PHP中,我们都知道有专门的mb_substr和mb_strlen函数,可以对中文进行截取和计算长度,但是,由于这些函数并非PHP的核心函数,所以,它们常常有可能没有开启.当然,如果是用的自己的服务器,则只要在php.ini中开启即可.如果是用的虚拟主机,而服务器又没有开启这方面的函数的话,那就需要我们自己写出点适合咱国情的函数来了. 以下几个函数用起来颇为顺手的.不过要知道,得在utf-8环境下使用. ? 1 2

中英文混合字符串截取java

//截取字符串长度(中文2个字节,半个中文显示一个) public String subTextString(String str,int len){ if(str.length()<len/2)return str; int count = 0; StringBuffer sb = new StringBuffer(); String[] ss = str.split(""); for(int i=1;i<ss.length;i++){ count+=ss[i].getB

c#的中英文混合字符串截取

public class StringHelper     {         public static string GetSubString(string str, int len)         {             string result = string.Empty;// 最终返回的结果             int byteLen = System.Text.Encoding.Default.GetByteCount(str);// 单字节字符长度          

php截取中文字符串,英文字符串,中英文字符串长度的方法

今天学习了php函数截取中文字符串,英文字符串,中英文字符串的函数使用方法.对中英文截取方法不理解,此处先做记录. PHP自带的函数如strlen().mb_strlen()都是通过计算字符串所占字节数来统计字符串长度的,一个英文字符占1字节.例: $enStr = ‘Hello,China!’;echo strlen($enStr); // 输出:12 而中文则不然,做中文网站一般会选择两种编码:gbk/gb2312或是utf-8.utf-8能兼容更多的字符,所以受到很多站长的喜爱.gbk与u

js截取中英文字符串、标点符号无乱码示例解读

<script> function subString(str, len, hasDot) { var newLength = 0; var newStr = ""; var chineseRegex = /[^\x00-\xff]/g; var singleChar = ""; var strLength = str.replace(chineseRegex,"**").length; for(var i = 0;i < st