`

截取处理UTF-8编码字符串

php 
阅读更多

PS:原创文章,如需转载,请注明出处,谢谢!     

本文地址:http://flyer0126.iteye.com/blog/1508695

 

/**
 * 截取处理UTF-8编码字符串
 * 规则:中文2个字符,数字、英文1个字符;截取末尾不足一个汉字的则舍弃。
 * @param string $str
 * @param int    $len 截取出的字符长度
 * @author flyer0126
 * @since 2012/05/03
 */
function substr_utf8_cn($str, $len)
{
	$length  = strlen($str);
	if ($length <=  $len)
	{
		return $str;
	}

	$result_str = '';
	for($i=0;$i<$len;$i++)
	{
		$temp_str=substr($str,0,1);
		if(ord($temp_str) > 127)
		{
			if($i+1<$len)
			{
				$result_str .= substr($str,0,3);
				$str = substr($str,3);
			}
			$i++;
		}
		else
		{
			$result_str .= substr($str,0,1);
			$str=substr($str,1);
		}
	}

	return $result_str;
}

//Useage:
$str1 = '截取处理字符串测试内容';
$str2 = '11aa22bb截取处理字符串测试内容';
$str3 = '#$%^截取处理字符串测试内容';

echo substr_utf8_cn($str1, 9, '...'),PHP_EOL;
echo substr_utf8_cn($str2, 9),PHP_EOL;
echo substr_utf8_cn($str3, 9);

//Outputs:
/**
截取处理
11aa22bb
#$%^截取
**/
 
分享到:
评论

相关推荐

    PHP正确解析UTF-8字符串技巧应用

    php /* 程序功能,$str是中英文混合的UTF-8编码字符串, 将此字符串根据UTF-8的编码规则正确的解码并显示。 */ $str = ‘今天非常Happy,所有决定去KFC吃可乐鸡翅!!!’; /* $str 是待截取的字符串 $len 是截取的字符...

    php截取utf-8中文字符串乱码的解决方法

    在PHP中截取UTF-8编码的字符串时,有可能碰到半字符的问题,也就是乱码,以下函数可以解决这个问题

    解析使用substr截取UTF-8中文字符串出现乱码的问题

    我们知道有时候使用substr来截取UTF-8中文字符串的时候,经常会出现乱码,为什么会出现这样的问题呢,本文告诉你答案。看这样一段代码吧(字符编码为UTF-8): 复制代码 代码如下:&lt;?$str = ‘都知道strlen与mb_...

    php 截取utf-8格式的字符串实例代码

    php 截取utf-8格式的字符串 php中,我们经常需要截取字符串。英文字符占用一个字节,中文字符占用两个字节,但中文字符占用两个字节是相对于GBK编码而言但是在时下国际流行的UTF8编码中,一个中文字符占用3个字节。...

    PHP 字符串编码截取函数(兼容utf-8和gb2312)

    复制代码 代码如下://截取字符串长度。支持utf-8和gb2312编码...=’utf-8′){//总是将字符串转为utf-8编码 $str=iconv($code,’utf-8′,$str); } $str_len=mb_strlen($str,’utf-8′);//字符串的长度 if($from&gt;$str_le

    ASP UTF-8编码下字符串截取和获取长度函数

    截取文字长度函数,支持UTF-8 ,这样就可以满意大部分截取字符串的朋友了。

    C#(.net)中按字节数截取字符串最后出现乱码问题的解决

    Encoding.UTF8.GetBytes采用的是utf-8编码。这样当然是乱码。尤其出现中文时候。 对这类数据处理当然要用统一的编码来处理。下面话不多说了,来一起看看详细的介绍吧 例子:1 string msg= Encoding.UTF8....

    Python 十六进制整数与ASCii编码字符串相互转换方法

    在使用Pyserial与STM32进行通讯时,遇到了...# -*- coding: utf-8 -*- import binascii #16进制整数转ASCii编码字符串 a = 0x665554 b = hex(a) #转换成相同的字符串即'0x665554' b = b[2:] #截取掉'0x' c = binascii

    常用字符串文本处理方法

    将Gb2312编码的字符串转换为utf-8。判断是否有非法字符。分割字符串。检测含中文字符串实际长度。截断字符串,如果str 的长度超过 need,则提取 str 的前 need 个字符,并在尾部加 “...”。将字符串中的html代码...

    php截取中文字符串不乱码的方法

     //utf-8编码的字符串echo mb_substr($str, 0, 2, ‘utf-8’); //输出 我a[/code 中英混合也完全没有问题。 友情提示 使用的时候要注意php文件的编码,和网页显示时的编码。 使用这个mb_substr方法要事先知道字符串...

    Python中文字符串截取问题

    先来看个例子: #-*- coding:utf8 -*- ...在查找 UTF-8 编码资料时发现,很多的帖子说的 UTF-8 编码里,一个汉字占用3个字节,有的还做了个证明,大概是这样的,创建一个没有BOM的UTF-8编码的文本文件,里面保

    PHP 截取字符串函数整理(支持gb2312和utf-8)

    常见的 PHP 截取字符串函数整理,支持gb2312和utf-8编码,方法php开发中需要用到截取字符串的问题。

    php截取字符串之截取utf8或gbk编码的中英文字符串示例

    google了下,找到一个discuz中截取各种编码字符的类,改造了下,已经测试通过.其中参数$charset 只支持gbk与utf-8。 复制代码 代码如下:$a = “s@@你好”;var_dump(strlen_weibo($a,’utf-8′)); 结果输出为8,其中...

    php中的一个中文字符串截取函数

    在PHP中,字符串截取函数是一个基本的函数,但是它不能正确地处理中文字符串,因为中文字符串在UTF-8编码中占用多个字节,而PHP的截取函数只能截取固定长度的字符串,无法正确地截取中文字符串。因此,需要开发一个...

    THINKPHP截取中文字符串函数实例代码

    在项目开发中,我们常常会遇到英文、中文等字符串截取问题,比如说新闻列表页面需要...$charset=”utf-8″:字符编码,默认UTF-8 $suffix=true:是否在截取后的字符后面显示省略号,默认true显示,false为不显示 */

    C++中可正确获取UTF-8字符长度的函数分享

    现在假设一串输入为UTF8编码,如何能准确的定位到每个UTF8字符的“CharPoint”,而不会错误的分割字符呢? 参考这个页面:http://www.nubaria.com/en/blog/?p=289 可以改造出下面的函数: const unsigned char ...

    PHP中字符与字节的区别及字符串与字节转换示例

    php在UTF-8编码下,一个汉字占3个字符,gbk编码下只占2个字符。 字节(Byte): 字节是通过网络传输信息(或在硬盘或内存中存储信息)的单位。 应用: 如果数据库中表为UTF8编码,则其中字段设置为最长10位字符,则最多...

    C++如何过滤出字符串的中文(GBK、UTF-8)

    最近在处理游戏敏感词之类的东西,为了加强屏蔽处理,所以需要过滤掉字符串中的除汉字之外的是其他东西如数字,符号,英文字母等。 首先我查阅资料并写了个函数: 示例:返回输入字符串中汉字的个数: std::string ...

Global site tag (gtag.js) - Google Analytics