php轻松实现中英文混排字符串截取
先给大家介绍用到的函数: 代码如下: mb_strwidth($str,$encoding) 返回字符串的宽度
$str 要计算的字符串 $encoding 要使用的编码,如 utf8、gbk 代码如下: mb_strimwidth($str,$start,$width,$tail,$encoding) 按宽度截取字符串 $str 要截取的字符串 $start 从哪个位置开始截取,默认是0 $width 要截取的宽度 $tail 追加到截取字符串后边的字符串,常用的是 ... $encoding 要使用的编码 下边给大家实例演示: 代码如下: /**
* utf8 编码格式 * 1个中文占用3个字节 * 我们希望的是1个中文占用2个字节, * 因为从宽度上看2个英文字母占用的位置相当于1个中文 */ // 测试字符串 // 必须指定编码,不然会使用php的内码 mb_internal_encoding()可以查看内码 // 只有宽度大于10才截取 // 最后输出 aaaa啊... 4个a算4个 1个啊算2个 3个点算3个 4+2+3=9 下边再给大家介绍一些其它函数吧: 代码如下: mb_strlen($str,$encoding) 返回字符串的长度
$str 要计算的字符串 $encoding 使用的编码 代码如下: mb_substr($str,$length,$encoding) 截取字符串
$str 要截取的字符串 $start 从哪里开始截取 $length 截取多长 $encoding 使用的编码 其实这2个函数和strlen()、substr()很像,唯一的不同就是可以设定编码。 下边上实例: 代码如下: /**
* utf8 编码格式 * 1个中文占用3个字节 */ $str = 'aa12啊aa'; echo strlen($str); // 直接输出长度为9 // 输出长度为7,为什么是7呢? // 同样mb_substr也是一样的 其实mb扩展里边很有很多好用的函数,这里就不给大家一一列举。
好了,今天就先介绍到这里了。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |