utf8编码下:中文占 3个字节,英文和数字占 1个字节(可变编码)(变长编码)
	 
	gbk编码下:所有的中文、英文、数字都占2个字节(定长编码)
	例如,有一个字符串,$str = “地方见21423435过很多苦法dsfsdfsdgsd规和地方给iu”
	 
	如果是gbk编码:截取5个字符 ,相当于截取10个字节  substr()截取的是字节数
	 
	如果是utf8编码的话:截取5个字符:不知道截取多少个字节,因为不确定是中文还是英文
	那么怎么判断呢?
	 
	通常根据一个字符的第一个字节,如果这个字节 的ASCII码 大于224 占3个字节,如果第一个字节的ASCII码,大于192 占2个字节,如果第一个字节的ASCII码小于192,占1个字节
	
	
在include下的extend.func.php文件中加入以下函数:
	
	
在include下的extend.func.php文件中加入以下函数:
		function GetPartStr($str,$len)//$str字符串   $len 控制长度
	
		{
	
		  $one=0;
	
		  $partstr='';
	
		  for($i=0;$i<$len;$i++)
	
		{ $sstr=substr($str,$one,1);
	
		 if(ord($sstr)>224){
	
		 $partstr.=substr($str,$one,3);
	
		 $one+=3;
	
		 }elseif(ord($sstr)>192){
	
		 $partstr.=substr($str,$one,2);
	
		 $one+=2;
	
		 }elseif(ord($sstr)<192){
	
		 $partstr.=substr($str,$one,1);
	
		 $one+=1;
	
		 }
	
		}
	
		if(strlen($str)<$one){
	
		   return $partstr;}else{
	
		return $partstr.'....';
	
		}
	
		}
		
调用方法如下,比如要对电话号码的一个字段进行截取,前三位显示,后面的用....代替,写法:
		
[field:tel function=GetPartStr(@me,3)/]
		
此教程为跟版网原创,欢迎转载。转载请保留版权。
调用方法如下,比如要对电话号码的一个字段进行截取,前三位显示,后面的用....代替,写法:
[field:tel function=GetPartStr(@me,3)/]
此教程为跟版网原创,欢迎转载。转载请保留版权。
The End



大气响应式网络建站服务公司织梦模板
高端大气html5设计公司网站源码
织梦dede网页模板下载素材销售下载站平台(带会员中心带筛选)
财税代理公司注册代理记账网站织梦模板(带手机端)
成人高考自考在职研究生教育机构网站源码(带手机端)
高端HTML5响应式企业集团通用类网站织梦模板(自适应手机端)