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 加密与解密的斗争
Apr 17 PHP
PHP扩展编写点滴 技巧收集
Mar 09 PHP
php多文件上传功能实现原理及代码
Apr 18 PHP
PHP中require和include路径问题详解
Dec 25 PHP
PHP开发注意事项总结
Feb 04 PHP
PHP编写登录验证码功能 附调用方法
May 19 PHP
php基于单例模式封装mysql类完整实例
Oct 18 PHP
php实现水印文字和缩略图的方法示例
Dec 29 PHP
PHP实现二维数组根据key进行排序的方法
Dec 30 PHP
php获取客户端IP及URL的方法示例
Feb 03 PHP
PHP利用缓存处理用户注册时的邮箱验证,成功后用户数据存入数据库操作示例
Dec 31 PHP
PHP dirname功能及原理实例解析
Oct 28 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生成html分页列表的代码
2007/03/18 PHP
用mysql_fetch_array()获取当前行数据的方法详解
2013/06/05 PHP
PHP制作用户注册系统
2015/10/23 PHP
PHP闭包函数详解
2016/02/13 PHP
PHP常用技巧汇总
2016/03/04 PHP
推荐一款jQuery插件模板
2015/01/09 Javascript
jquery插件orbit.js实现图片折叠轮换特效
2015/04/14 Javascript
JavaScript添加随滚动条滚动窗体的方法
2016/02/23 Javascript
jQuery实现的导航下拉菜单效果示例
2016/09/05 Javascript
基于javascript实现按圆形排列DIV元素(二)
2016/12/02 Javascript
浅谈JavaScript异步编程
2017/01/20 Javascript
JS中正则表达式要注意lastIndex属性
2017/08/08 Javascript
Angular4.x通过路由守卫进行路由重定向实现根据条件跳转到相应的页面(推荐)
2018/05/10 Javascript
vue+element的表格实现批量删除功能示例代码
2018/08/17 Javascript
vue-cli配置全局sass、less变量的方法
2019/06/06 Javascript
PHP读取远程txt文档到数组并实现遍历
2020/08/25 Javascript
Python数据分析之双色球基于线性回归算法预测下期中奖结果示例
2018/02/08 Python
完美解决Python matplotlib绘图时汉字显示不正常的问题
2019/01/29 Python
Python如何实现强制数据类型转换
2019/11/22 Python
django 实现后台从富文本提取纯文本
2020/07/02 Python
HTML高亮关键字的实现代码
2018/10/22 HTML / CSS
Carolina Lemke Berlin澳大利亚官网:时尚太阳镜品牌
2019/09/17 全球购物
元旦晚会邀请函
2014/02/01 职场文书
小学敬老月活动方案
2014/02/11 职场文书
餐饮企业总经理岗位职责范文
2014/02/18 职场文书
出纳员的岗位职责
2014/02/22 职场文书
教育技术职业规划范文
2014/03/04 职场文书
关于奉献的演讲稿
2014/05/21 职场文书
食品工程专业求职信
2014/06/15 职场文书
人力资源职位说明书
2014/07/29 职场文书
监考失职检讨书
2015/01/26 职场文书
初一年级组工作总结
2015/08/12 职场文书
幼儿园大班教师随笔
2015/08/14 职场文书
Python爬虫之爬取二手房信息
2021/04/27 Python
阿里云服务器搭建Php+Apache运行环境的详细过程
2021/05/15 PHP
AJAX实现指定部分页面刷新效果
2021/10/16 Javascript