/** * * @todo 截取中文字符串不乱码 * @param string $str * @param int $start * @param int $length * @param string $charset * @param string $suffix */ function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true) { if(function_exists("mb_substr")) $slice = mb_substr($str, $start, $length, $charset); elseif(function_exists('iconv_substr')) { $slice = iconv_substr($str,$start,$length,$charset); }else{ $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)); } return $suffix ? $slice.'...' : $slice; }
相关推荐
在PHP中截取UTF-8编码的字符串时,有可能碰到半字符的问题,也就是乱码,以下函数可以解决这个问题
主要介绍了php 截取utf-8格式的字符串实例代码的相关资料,并附实例代码,需要的朋友可以参考下
本篇文章是对使用substr截取UTF-8中文字符串出现乱码的问题进行了详细的分析介绍,需要的朋友参考下
php /* 程序功能,$str是中英文混合的UTF-8编码字符串, 将此字符串根据UTF-8的编码规则正确的解码并显示。 */ $str = ‘今天非常Happy,所有决定去KFC吃可乐鸡翅!!!’; /* $str 是待截取的字符串 $len 是截取的字符...
php中截取字符串支持utf-8
复制代码 代码如下://截取字符串长度。支持utf-8和gb2312编码...=’utf-8′){//总是将字符串转为utf-8编码 $str=iconv($code,’utf-8′,$str); } $str_len=mb_strlen($str,’utf-8′);//字符串的长度 if($from>$str_le
本文主要介绍了php自定义截取中文字符串的方法,具有很好的参考价值,下面跟着小编一起来看下吧
但字符串只要出现中文字符,就有可能导致PHP substr中文乱码,因为中文UTF-8编码,每个汉字占3字节,而GB2312占2字节,英文占1字节,截取位数不准确,substr()硬生生地将一个中文字符“锯”成两半,造成断开的字符会...
//utf-8编码的字符串echo mb_substr($str, 0, 2, ‘utf-8’); //输出 我a[/code 中英混合也完全没有问题。 友情提示 使用的时候要注意php文件的编码,和网页显示时的编码。 使用这个mb_substr方法要事先知道字符串...
常见的 PHP 截取字符串函数整理,支持gb2312和utf-8编码,方法php开发中需要用到截取字符串的问题。
一、中文截取:mb_substr() mb_substr( $str, $start, $length, $encoding ) $str,需要截断的字符串 $start,截断开始处,起始处为0 $length,要截取的字数 $encoding,网页编码,如utf-8,GB2312,GBK 实例: 复制...
最近在处理游戏敏感词之类的东西,为了加强屏蔽处理,所以需要过滤掉字符串中的除汉字之外的是其他东西如数字,符号,英文字母等。 首先我查阅资料并写了个函数: 示例:返回输入字符串中汉字的个数: std::string ...
微博的发言有字数限制,其计数方式是,中文算2个,英文算1个,全角字符算2个,半角字符算1个。php中自带strlen是返回的字节数,对于...var_dump(strlen_weibo($a,’utf-8′)); 结果输出为8,其中字母s计数为1,全角@
/* * @todo 中文截取,支持gb2312,gbk,utf-8,big5 * * @param string $str 要截取的字串 * @param int $start 截取起始位置 * @param int $length 截取长度 * @param string $charset utf-...
本文实例讲述了PHP中字符串长度的截取用法。分享给大家供大家参考,具体如下: php中提供了很多使用函数,其中字符串的截取函数也不例外,而且功能也非常强大。 <?php //文件编码格式为UTF-8 $str='\u5728\u516c...