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制作静态网站的模板框架(一)
Oct 09 PHP
PHP脚本的10个技巧(7)
Oct 09 PHP
修改php.ini实现Mysql导入数据库文件最大限制的修改方法
Dec 11 PHP
如何使用php绘制在图片上的正余弦曲线
Jun 08 PHP
php文件压缩之PHPZip类用法实例
Jun 18 PHP
如何用PHP来实现一个动态Web服务器
Jul 29 PHP
修改PHP脚本使WordPress拦截垃圾评论的方法示例
Dec 10 PHP
php快速排序原理与实现方法分析
May 26 PHP
Yii2主题(Theme)用法详解
Jul 23 PHP
PHP文件操作实例总结
Sep 27 PHP
完美的php分页类
Oct 24 PHP
PHP中国际化的字符串排序和比较对象详解
Aug 23 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
常用表单验证类,有了这个,一般的验证就都齐了。
2006/12/06 PHP
Apache实现Web Server负载均衡详解(不考虑Session版)
2013/07/05 PHP
destoon利用Rewrite规则设置网站安全
2014/06/21 PHP
php图片水印添加、压缩、剪切的封装类实现
2020/04/18 PHP
JavaScript中的变量声明早于赋值分析
2012/03/01 Javascript
深入理解JavaScript系列(16) 闭包(Closures)
2012/04/12 Javascript
浏览器加载、渲染和解析过程黑箱简析
2012/11/29 Javascript
jquery控制左右箭头滚动图片列表的实例
2013/05/20 Javascript
使用Js让Html中特殊字符不被转义
2013/11/05 Javascript
JavaScript框架(iframe)操作总结
2014/04/16 Javascript
关于 jQuery Easyui异步加载tree的问题解析
2016/12/06 Javascript
Bootstrap基本样式学习笔记之按钮(4)
2016/12/07 Javascript
bootstrap中的 form表单属性role=&quot;form&quot;的作用详解
2017/01/20 Javascript
js中DOM三级列表(代码分享)
2017/03/20 Javascript
js实现轮播图的完整代码
2020/10/26 Javascript
vue2.0 使用element-ui里的upload组件实现图片预览效果方法
2018/09/04 Javascript
vue 集成jTopo 处理方法
2019/08/07 Javascript
vue给对象动态添加属性和值的实例
2019/09/09 Javascript
highcharts.js数据绑定方式代码实例
2019/11/13 Javascript
jQuery实现验证用户登录
2019/12/10 jQuery
JS数据类型判断的几种常用方法
2020/07/07 Javascript
vue组件开发之tab切换组件使用详解
2020/08/21 Javascript
通过高德地图API获得某条道路上的所有坐标用于描绘道路的方法
2020/08/24 Javascript
理解生产者消费者模型及在Python编程中的运用实例
2016/06/26 Python
利用python程序帮大家清理windows垃圾
2017/01/15 Python
python安装模块如何通过setup.py安装(超简单)
2018/05/05 Python
python实现根据文件格式分类
2019/10/31 Python
Python爬虫HTPP请求方法有哪些
2020/06/03 Python
应届生人事助理求职信
2013/11/09 职场文书
2013届毕业生求职信范文
2013/11/20 职场文书
公司授权委托书范文
2014/08/02 职场文书
小学教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
加班费申请报告
2015/05/15 职场文书
2015年数学教研工作总结
2015/07/22 职场文书
MySQL获取所有分类的前N条记录
2021/05/07 MySQL
索尼ICF-5900W收音机测评
2022/04/24 无线电