php使用mb_check_encoding检查字符串在指定的编码里是否有效


Posted in PHP onNovember 07, 2013

mb_check_encoding — 检查字符串在指定的编码里是否有效
PHP 版本要求: (PHP 4 >= 4.4.3, PHP 5 >= 5.1.3)
说明:bool mb_check_encoding ([ string $var = NULL [, string $encoding = mb_internal_encoding() ]] )
检查指定的字节流在指定的编码里是否有效。它能有效避免所谓的“无效编码攻击(Invalid Encoding Attack)”。
参数
var
要检查的字节流。如果省略了这个参数,此函数会检查所有来自最初请求所有的输入。
encoding
期望的编码。
返回值
成功时返回 TRUE, 或者在失败时返回 FALSE。
为了检查是否一个字符串编码正确在utf - 8中,我建议以下函数实现 mb_check_encoding():

<?php 
function check_utf8($str) { 
    $len = strlen($str); 
    for($i = 0; $i < $len; $i++){ 
        $c = ord($str[$i]); 
        if ($c > 128) { 
            if (($c > 247)) return false; 
            elseif ($c > 239) $bytes = 4; 
            elseif ($c > 223) $bytes = 3; 
            elseif ($c > 191) $bytes = 2; 
            else return false; 
            if (($i + $bytes) > $len) return false; 
            while ($bytes > 1) { 
                $i++; 
                $b = ord($str[$i]); 
                if ($b < 128 || $b > 191) return false; 
                $bytes--; 
            } 
        } 
    } 
    return true; 
} // end of check_utf8 
?>
PHP 相关文章推荐
一个取得文件扩展名的函数
Oct 09 PHP
php 购物车实例(申精)
May 11 PHP
PHP 类型转换函数intval
Jun 20 PHP
PHP以指定字段为索引返回数据库所取的数据数组
Jun 30 PHP
PHP获取网页标题的3种实现方法代码实例
Apr 11 PHP
PHP+Memcache实现wordpress访问总数统计(非插件)
Jul 04 PHP
windows7下安装php的php-ssh2扩展教程
Jul 04 PHP
ThinkPHP行为扩展Behavior应用实例详解
Jul 22 PHP
PHP实现简易blog的制作
Oct 24 PHP
PHP实现阿里大鱼短信验证的实例代码
Jul 10 PHP
浅谈使用 Yii2 AssetBundle 中 $publishOptions 的正确姿势
Nov 08 PHP
PHP配置文件php.ini中打开错误报告的设置方法
Jan 09 PHP
PHP中spl_autoload_register函数的用法总结
Nov 07 #PHP
php去除HTML标签实例
Nov 06 #PHP
php实现监听事件
Nov 06 #PHP
php生成扇形比例图实例
Nov 06 #PHP
php多用户读写文件冲突的解决办法
Nov 06 #PHP
php生成图形(Libchart)实例
Nov 06 #PHP
php ZipArchive压缩函数详解实例
Nov 06 #PHP
You might like
php版微信公众平台接口参数调试实现判断用户行为的方法
2016/09/23 PHP
PHP PDOStatement::closeCursor讲解
2019/01/30 PHP
jQuery布局插件UI Layout简介及使用方法
2013/04/03 Javascript
浅谈JavaScript中指针和地址
2015/07/26 Javascript
js实现商城星星评分的效果
2015/12/29 Javascript
js判断主流浏览器类型和版本号的简单实现代码
2016/05/26 Javascript
ES6新特征数字、数组、字符串
2016/10/01 Javascript
深入理解Vuex 模块化(module)
2017/09/26 Javascript
JQuery通过后台获取数据遍历到前台的方法
2018/08/13 jQuery
vue中的watch监听数据变化及watch中各属性的详解
2018/09/11 Javascript
jQuery无冲突模式详解
2019/01/17 jQuery
Python中用Ctrl+C终止多线程程序的问题解决
2013/03/30 Python
python实现从ftp服务器下载文件的方法
2015/04/30 Python
Python实现网络端口转发和重定向的方法
2016/09/19 Python
Python实现修改IE注册表功能示例
2018/05/10 Python
[原创]Python入门教程3. 列表基本操作【定义、运算、常用函数】
2018/10/30 Python
对python中的six.moves模块的下载函数urlretrieve详解
2018/12/19 Python
大家都说好用的Python命令行库click的使用
2019/11/07 Python
Python-openCV开运算实例
2020/07/05 Python
Python 实现 T00ls 自动签到脚本代码(邮件+钉钉通知)
2020/07/06 Python
使paramiko库执行命令时在给定的时间强制退出功能的实现
2021/03/03 Python
html5拍照功能实现代码(htm5上传文件)
2013/12/11 HTML / CSS
ZWILLING双立人法国网上商店:德国刀具锅具厨具品牌
2019/08/28 全球购物
莫斯科制造商的廉价皮大衣:Fursk
2020/06/09 全球购物
有个性的自我评价范文
2013/11/15 职场文书
国际金融专业大学生职业生涯规划书
2013/12/28 职场文书
大学生村官任职感言
2014/01/09 职场文书
小学红领巾中秋节广播稿
2014/01/13 职场文书
村级环境卫生整治方案
2014/05/04 职场文书
销售员试用期自我评价
2014/09/15 职场文书
乡镇党的群众路线对照检查材料
2014/09/24 职场文书
镇人大副主席民主生活会对照检查材料思想汇报
2014/10/01 职场文书
裁员通知
2015/04/25 职场文书
2015年工程部工作总结
2015/04/30 职场文书
MySQL添加索引特点及优化问题
2022/07/23 MySQL
前端传参数进行Mybatis调用mysql存储过程执行返回值详解
2022/08/14 MySQL