php截取指定长度中文字符的技巧
在PHP程序开发中,经常会执行字符串的截取操作,那么php如何截取指定长度中文字符呢?来看看小编的分享吧!
但字符串只要出现中文字符,就有可能导致PHP substr 中文乱码,因为中文UTF-8编码,每个汉字占3字节,而GB2312占2字节,英文占1字节,截取位数不准确,substr()硬生生地将一个中文字符“锯”成两半,造成断开的字符会把其后的..拉过来一起做一个字,所以出现了PHP substr中文乱码。下面说一下解决办法:
使用mb_stren()函数:
[php] view plain copymixed mb_strlen ( string $str[, string $encoding = mb_internal_encoding() ] )
第一个参数为要处理的的字符串 第二个参数为编码方式 忽略则使用默认编码
根据此函数来截取中文字符串,自定义函数为:
[php] view plain copy/**
* @param string $string 要截取的'字符串
* @param int $len 要截取的长度
* @param string $tail 截取后结尾替换的字符换
* @return string $string 返回截取后的字符串
*/
function changeStr($string,$len,$tail){
if(mb_strlen($string)>$len){
$tmp = mb_substr($string,0,$len,'utf8');
return $tmp.$tail;
}else{
return $arg;
}
}
测试:
[php] view plain copy
header('Content-type:text/html;charset=utf8');
$string = "大众创业、万众创新成为全社会的共识。开展股权众筹融资试点”被正式写入政府工作报告,
即将修订的《证券法》也将赋予股权众筹一个法律地位。当今的中国是创业的热土,也是股权众筹最适宜生
长的土壤,支持一大批创新创业公司因“众筹”而成功是众筹行业的历史使命。中关村作为新经济的风向标和
策源地,率先诞生了中国最有影响力的一批股权众筹平台,推动股权众筹行业健康发展,为“大众创业、万众
创新”营造良好发展环境成为中关村的历史使命和必然选择。";
echo changeStr($string,10,'.....');
/**
* @param string $string 要截取的字符串
* @param int $len 要截取的长度
* @param string $tail 截取后结尾替换的字符换
* @return string $string 返回截取后的字符串
*/
function changeStr($string,$len,$tail){
if(mb_strlen($string)>$len){
$tmp = mb_substr($string,0,$len,'utf8');
return $tmp.$tail;
}else{
return $arg;
}
}
?>
输出:
大众创业、万众创新.....
-
PHP base64解码 加密图片的还原方法
PHP是一门高效的网络编程语言,由于它具有编写灵活、运行快速等优点,迅速成为Web程序员的首选语言。以下是小编为大家搜索整理的PHPbase64解码加密图片的还原方法,希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生考试网![php]viewplaincopy//文件名:$d...
-
php新手易犯的几个小错误
本文为大家列举了php新手易犯的几个小错误,供大家参考。1、headeralreadysent这个错误通常会在你使用HEADER的时候出现,他可能是几种原因。跟随小编去看看吧!1、headeralreadysent这个错误通常会在你使用HEADER的时候出现,他可能是几种原因:1,你在使用HEADER前PRING...
-
php递归创建和删除文件夹的代码
php中递归创建和删除文件夹的代码,供大家学习参考。就跟随本站小编一起去了解下吧,想了解更多相关信息请持续关注我们应届毕业生考试网!方法一复制代码代码如下:<?php/***目录生成类:UtilsMakeDir*@authoryepeng*@since2010.3.18*/classUtilsMakeDir{//基目录建...
-
解决PHPutf-8编码问题的方法
PHPutf-8编码问题,着是困惑很多人的问题,如果处理不好,都是乱码,下面是解决PHPutf-8编码问题的方法,一起来学习下吧:1.在建数据库的时候,尤其是用phpMyAdmin与MYSQL打交道时候,一般都是utf-8,字段为utf8_general_ci数据库的设置:在文件中查找:[mysql]default-character-s...