|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
理解动态语言的概念,运做机制,熟悉PHP语法提到中英文混排计数、截取,人人起首想到的是ascii、16进制、正则婚配、轮回计数。明天我给人人分享的是php的mb扩大,教你怎样轻松处置字符串。先给人人先容用到的函数:mb_strwidth($str,$encoding)前往字符串的宽度$str要盘算的字符串$encoding要利用的编码,如utf8、gbkmb_strimwidth($str,$start,$width,$tail,$encoding)按宽度截取字符串$str要截取的字符串$start从哪一个地位入手下手截取,默许是0$width要截取的宽度$tail追加到截取字符串后边的字符串,经常使用的是...$encoding要利用的编码下边给人人实例演示:复制代码<?php/***utf8编码格局*1其中文占用3个字节*我们但愿的是1其中文占用2个字节,*由于从宽度上看2个英笔墨母占用的地位相称于1其中文*///测试字符串$str=aaaa啊啊aaaa啊啊啊aaa;echostrlen($str);//只用strlen输入为25个字节//必需指定编码,否则会利用php的内码mb_internal_encoding()能够检察内码//利用mb_strwidth输入字符串的宽度为20利用utf8编码echomb_strwidth($str,utf8);//只要宽度年夜于10才截取if(mb_strwidth($str,utf8)>10){//此处设定从0入手下手截取,取10个追加...,利用utf8编码//注重追加的...也会被盘算到长度以内$str=mb_strimwidth($str,0,10,...,utf8);}//最初输入aaaa啊...4个a算4个1个啊算2个3个点算3个4+2+3=9//是否是很复杂啊,有的人说了为何是9个不是10个吗?//由于恰好“啊”的后边仍是“啊”,中文算2个,9+2=11超越了设定,以是往失落1个就是9了echo$str;复制代码下边再给人人先容一些别的函数吧:mb_strlen($str,$encoding)前往字符串的长度$str要盘算的字符串$encoding利用的编码mb_substr($str,$start,$length,$encoding)截取字符串$str要截取的字符串$start从那里入手下手截取$length截取多长$encoding利用的编码实在这2个函数和strlen()、substr()很像,独一的分歧就是能够设定编码。下边上实例:复制代码<?php/***utf8编码格局*1其中文占用3个字节*/$str=aa12啊aa;echostrlen($str);//间接输入长度为9//输入长度为7,为何是7呢?//注重这里设定编码今后,不论是中文仍是英文每一个长度都为1//aa12啊aa//1+1+1+1+1+1+1=7//是否是恰好7个字符啊echomb_strlen($str,utf8);//一样mb_substr也是一样的//我如今只想要5个字符echomb_substr($str,0,5,utf8);//输入aa12啊复制代码会PHP吗?会,我会把一加一的运算写在函数里,然后调用啦! |
|