php中使用mb_strlen解决中文字符数
来源:互联网 发布:宝宝学英语软件 编辑:程序博客网 时间:2024/06/11 16:19
最近为了安全,在数据访问类上加了一个安全插入和安全更新方法。数据在插入前先过滤危险字串,并对数据类型,长度进行检查。
问题出来了,在长度检查方面,数据库使用的是varchar,长度是按字符个数算的,比如“abcdef”算6个字符,“一二三四五六”也算六个字符。而php的strlen方法算出并不一样,strlen("abcdef")是6,而strlen("一二三四五六")是18。这样检查起来就麻烦了。
网上查找了php中文字符数,说用mb_strlen。
查了一下手册:
int mb_strlen ( string str [, string encoding] )
mb_strlen() returns number of characters in string str having character encoding encoding. A multi-byte character is counted as 1.
encoding is character encoding for str. If encoding is omitted, internal character encoding is used.
原来这个函数,是针对字数的,根据不同编码。对于某些字符,多字节的也计算为1,就它了。
试了一下,mb_strlen('abcdef','utf-8')和mb_strlen('一二三四五六','utf-8')都等于6。行了~
- php中使用mb_strlen解决中文字符数
- php中使用mb_strlen解决中文字符数
- 在php中使用mb_strlen()函数和mb_substr()函数
- php中mb_strlen()和strlen()
- php中中文字符串的截取和获取长度 mb_substr() mb_strlen()
- PHP中strlen和mb_strlen的区别
- PHP中strlen和mb_strlen的区别
- strlen和mb_strlen区别(php获得中英文混合字符长度)
- strlen和mb_strlen区别(php获得中英文混合字符长度)
- strlen和mb_strlen区别(php获得中英文混合字符长度)
- strlen和mb_strlen区别(php获得中英文混合字符长度)
- strlen和mb_strlen区别(php获得中英文混合字符长度)
- strlen和mb_strlen区别(php获得中英文混合字符长度)
- (转载)PHP如何获取中文字符串长度 utf8_strlen()/mb_strlen()
- 细说PHP中strlen和mb_strlen的区别
- 细说PHP中strlen和mb_strlen的区别
- 细说PHP中strlen和mb_strlen的区别
- PHP中strlen和mb_strlen函数的区别
- 敏捷软件开发模型--SCRUM
- 春兰秋菊
- Android Intent 使用整理
- PHP和Perl正彻底成为企业级
- Java和PHP在Web开发方面的比较
- php中使用mb_strlen解决中文字符数
- 等你的夜晚
- PHP语言教父炮轰Java:已输掉Web之战
- Linux 系统内核参数 sysctl.conf优化方案
- photoshop 键盘操作快捷键汇总
- Visual Studio 2010敏捷利剑:详解Scrum / Scrum of Visual Studio 2010
- 浅谈搜索引擎排名和长尾关键词的关系
- loadRunner基础释疑
- abap-使用vim做abap的编辑器