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 相关文章推荐
php array_intersect()函数使用代码
Jan 14 PHP
PHP开发的一些注意点总结
Oct 12 PHP
基于Linux调试工具strace与gdb的常用命令总结
Jun 03 PHP
Window下PHP三种运行方式图文详解
Jun 11 PHP
Linux Apache PHP Oracle 安装配置(具体操作步骤)
Jun 17 PHP
PHP根据IP地址获取所在城市具体实现
Nov 27 PHP
PHP使用mysql_fetch_object从查询结果中获取对象集的方法
Mar 18 PHP
PHP易混淆知识整理笔记
Sep 24 PHP
Yii CDBCriteria常用方法实例小结
Jan 19 PHP
Thinkphp5结合layer弹窗定制操作结果页面
Jul 07 PHP
详解PHP版本兼容之openssl调用参数
Jul 25 PHP
php生成HTML文件的类方法
Oct 11 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使用GD实现颜色渐变实例
2015/06/02 PHP
php strftime函数的详细用法
2018/06/21 PHP
Yii框架常见缓存应用实例小结
2019/09/09 PHP
JS子父窗口互相操作取值赋值的方法介绍
2013/05/11 Javascript
JavaScript将数据转换成整数的方法
2014/01/04 Javascript
利用Jquery实现可多选的下拉框
2014/02/21 Javascript
javascript中去除数组重复元素的实现方法【实例】
2016/04/12 Javascript
JavaScript继承学习笔记【新手必看】
2016/05/10 Javascript
解决vue2中使用axios http请求出现的问题
2018/03/05 Javascript
JS获取input[file]的值并显示在页面的实现方法
2018/03/09 Javascript
node打造微信个人号机器人的方法示例
2018/04/26 Javascript
vue组件实现弹出框点击显示隐藏效果
2020/10/26 Javascript
让Vue也可以使用Redux的方法
2018/05/23 Javascript
Vue实现商品飞入购物车效果(电商项目)
2019/11/26 Javascript
vue全屏事件开发详解
2020/06/17 Javascript
JavaScript代码简化技巧实例解析
2020/09/09 Javascript
在Angular项目使用socket.io实现通信的方法
2021/01/05 Javascript
JavaScript实现点击出现子菜单效果
2021/02/08 Javascript
Python操作SQLite简明教程
2014/07/10 Python
自动化Nginx服务器的反向代理的配置方法
2015/06/28 Python
Django中的CACHE_BACKEND参数和站点级Cache设置
2015/07/23 Python
python pandas dataframe 行列选择,切片操作方法
2018/04/10 Python
python实现验证码识别功能
2018/06/07 Python
python2与python3中关于对NaN类型数据的判断和转换方法
2018/10/30 Python
python破解bilibili滑动验证码登录功能
2019/09/11 Python
Python3+Requests+Excel完整接口自动化测试框架的实现
2019/10/11 Python
关于python3.9安装wordcloud出错的问题及解决办法
2020/11/02 Python
同程旅游英文网站:LY.com
2018/11/13 全球购物
亚洲航空公司官方网站:AirAsia
2019/11/25 全球购物
哈曼俄罗斯官方网上商店:Harman.club
2020/07/24 全球购物
高一化学教学反思
2014/02/05 职场文书
仓管员岗位责任制
2014/02/19 职场文书
湖南省党的群众路线教育实践活动总结会议新闻稿
2014/10/21 职场文书
2015年入党积极分子评语
2015/03/26 职场文书
飞屋环游记观后感
2015/06/08 职场文书
小学语文新课改心得体会
2016/01/22 职场文书