免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1748 | 回复: 3
打印 上一主题 下一主题

关于截取utf8字符串函数的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-05 12:43 |只看该作者 |倒序浏览
这是 我在网上找到的一个截取utf8字符串的函数



function utf8Substr($str, $from, $len)
        {   
                return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.'((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s',                        '$1',$str);                                

    }


那位高人给详细解释一下,我查了资料,?:表示的不储存当前的匹配, 但是还是看不太明白,多谢赐教

论坛徽章:
0
2 [报告]
发表于 2009-08-05 14:00 |只看该作者
每个 char 由 xx|yyzz+ 组成。
这个正则做的事情,就是用后面 n 个 char,替换整个 string。前面的 (? 放弃了前面所有的匹配,而后面的单个 char 不用储存,所以 () 里面还有一个 (?。不过这个正则有够难看的,而且也没检查 $from 和 $len。

评分

参与人数 1可用积分 +5 收起 理由
bs + 5 乐于助人

查看全部评分

论坛徽章:
0
3 [报告]
发表于 2009-08-05 15:04 |只看该作者
非常感谢 但是没看懂 能再详细点  谢谢

[ 本帖最后由 xiehc 于 2009-8-5 15:36 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2009-08-05 19:26 |只看该作者
是哪儿没看懂?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP