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 读取shell管道传输过来的内容
Mar 01 PHP
php中计算未知长度的字符串哪个字符出现的次数最多的代码
Aug 14 PHP
谨慎使用PHP的引用原因分析
Sep 06 PHP
php笔记之:php数组相关函数的使用
Apr 26 PHP
Youku 视频绝对地址获取的方法详解
Jun 26 PHP
解析PHP 使用curl提交json格式数据
Jun 29 PHP
PHP添加Xdebug扩展的方法
Feb 12 PHP
zf框架的Filter过滤器使用示例
Mar 13 PHP
ThinkPHP3.2.2的插件控制器功能
Mar 05 PHP
PHP Post获取不到非表单数据的问题解决办法
Feb 27 PHP
Laravel框架实现调用百度翻译API功能示例
May 30 PHP
php 多个变量指向同一个引用($b = &amp;$a)用法分析
Nov 13 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跨站刷票的实现代码
2013/06/18 PHP
PHP调用MySQL存储过程并返回值的方法
2014/12/26 PHP
php实现RSA加密类实例
2015/03/26 PHP
json 实例详细说明教程
2009/10/31 Javascript
JS 树形递归实例代码
2010/05/18 Javascript
Javascript中产生固定结果的函数优化技巧
2013/01/16 Javascript
JavaScript中的style.cssText使用教程
2014/11/06 Javascript
NodeJs中的VM模块详解
2015/05/06 NodeJs
分享12个实用的jQuery代码片段
2016/03/09 Javascript
JavaScript从数组的indexOf()深入之Object的Property机制
2016/05/11 Javascript
标准的js无缝滚动效果
2016/08/30 Javascript
移动端滑动插件Swipe教程
2016/10/16 Javascript
servlet+jquery实现文件上传进度条示例代码
2017/01/25 Javascript
详谈js遍历集合(Array,Map,Set)
2017/04/06 Javascript
js is_valid_filename验证文件名的函数
2017/07/19 Javascript
vue实现全选和反选功能
2017/08/31 Javascript
taro开发微信小程序的实践
2019/05/21 Javascript
详解Vue串联过滤器的使用场景
2020/04/30 Javascript
基于Cesium绘制抛物弧线
2020/11/18 Javascript
在阿里云服务器上配置CentOS+Nginx+Python+Flask环境
2016/06/18 Python
解决Python2.7读写文件中的中文乱码问题
2018/04/12 Python
Python-while 计算100以内奇数和的方法
2019/06/11 Python
在Python中COM口的调用方法
2019/07/03 Python
python爬虫的一个常见简单js反爬详解
2019/07/09 Python
python如何实现数据的线性拟合
2019/07/19 Python
HTML5在手机端实现视频全屏展示方法
2020/11/23 HTML / CSS
ProBikeKit美国官网:自行车套件,跑步和铁人三项套件
2016/10/13 全球购物
Marc Jacobs彩妆官网:Marc Jacobs Beauty
2017/07/03 全球购物
波兰家具和室内装饰品购物网站:Vivre
2018/04/10 全球购物
高清安全摄像头系统:Lorex Technology
2018/07/20 全球购物
春游踏青活动方案
2014/08/14 职场文书
护理工作个人总结
2015/03/03 职场文书
离婚起诉书范文2016
2015/11/26 职场文书
爱岗敬业先进典型事迹材料(2016推荐版)
2016/02/26 职场文书
有关信念的名言语录集锦
2019/12/06 职场文书
Java实现多线程聊天室
2021/06/26 Java/Android