zoukankan      html  css  js  c++  java
  • php 中文切割字符串长度

    function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true)
    	{
    		if(function_exists("mb_substr")) {
    			if($suffix)
    			{
    				if($str==mb_substr($str, $start, $length, $charset))
    				{
    					return mb_substr($str, $start, $length, $charset);
    				}
    				else
    				{
    					return mb_substr($str, $start, $length, $charset)."...";
    				}
    			}
    			else
    			{
    				return mb_substr($str, $start, $length, $charset);
    			}
    		}
    		elseif(function_exists('iconv_substr')) {
    			if($suffix)
    			{
    				if($str==iconv_substr($str,$start,$length,$charset))
    				{
    					return iconv_substr($str,$start,$length,$charset);
    				}
    				else
    				{
    					return iconv_substr($str,$start,$length,$charset)."...";
    				}
    			}
    			else
    			{
    				return iconv_substr($str,$start,$length,$charset);
    			}
    		}
    		$re['utf-8']   = "/[x01-x7f]|[xc2-xdf][x80-xbf]|[xe0-xef][x80-xbf]{2}|[xf0-xff][x80-xbf]{3}/";
    		$re['gb2312'] = "/[x01-x7f]|[xb0-xf7][xa0-xfe]/";
    		$re['gbk']    = "/[x01-x7f]|[x81-xfe][x40-xfe]/";
    		$re['big5']   = "/[x01-x7f]|[x81-xfe]([x40-x7e]|xa1-xfe])/";
    		preg_match_all($re[$charset], $str, $match);
    		$slice = join("",array_slice($match[0], $start, $length));
    		if($suffix) return $slice."…";
    		return $slice;
    	}
    

      

  • 相关阅读:
    Python下用Tkinter进行GUI编程
    6月3日——回首一个半月
    Consistent Hashing算法
    学生终究要面对社会
    MySQL的锁(1)
    Memcached笔记之分布式算法(idv2.com)
    4月21日总结
    2012.3.29小结
    C#调用c++创建的dll
    以post方式发送文档到端口
  • 原文地址:https://www.cnblogs.com/penciler/p/4276760.html
Copyright © 2011-2022 走看看