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 相关文章推荐
[FAQ]PHP中的一些常识:类篇
Oct 09 PHP
php 数组二分法查找函数代码
Feb 16 PHP
phpmyadmin 常用选项设置详解版
Mar 07 PHP
PHP PDO函数库详解
Apr 27 PHP
PHP基础教程(php入门基础教程)一些code代码
Jan 06 PHP
curl不使用文件存取cookie php使用curl获取cookie示例
Jan 26 PHP
php通过递归方式复制目录和子目录的方法
Mar 13 PHP
PHP实现批量生成App各种尺寸Logo
Mar 19 PHP
php实现mysql数据库连接操作及用户管理
Nov 08 PHP
PHP的邮件群发系统phplist配置方法详细总结
Mar 30 PHP
thinkphp5 加载静态资源路径与常量的方法
Dec 24 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
Feb 07 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,ajax实现分页
2008/03/27 PHP
PHP下编码转换函数mb_convert_encoding与iconv的使用说明
2009/12/16 PHP
php中的mongodb select常用操作代码示例
2014/09/06 PHP
php+xml结合Ajax实现点赞功能完整实例
2015/01/30 PHP
海量经典的jQuery插件集合
2010/01/12 Javascript
Javascript 浮点运算的问题分析与解决方法
2013/08/27 Javascript
c#+jquery实现获取radio和checkbox的值
2020/09/12 Javascript
javascript实现根据身份证号读取相关信息
2014/12/17 Javascript
javascript等号运算符使用详解
2015/04/16 Javascript
详解javascript new的运行机制
2016/01/26 Javascript
JavaScript数组的栈方法与队列方法详解
2016/05/26 Javascript
JS冒泡事件与事件捕获实例详解
2016/11/25 Javascript
jquery封装插件时匿名函数形参和实参的写法解释
2017/02/14 Javascript
JavaScript中使用Async实现异步控制
2017/08/15 Javascript
基于vue监听滚动事件实现锚点链接平滑滚动的方法
2018/01/17 Javascript
React组件中的this的具体使用
2018/02/28 Javascript
element-ui 本地化使用教程详解
2019/10/28 Javascript
javascript 内存模型实例详解
2020/04/18 Javascript
ElementUI 修改默认样式的几种办法(小结)
2020/07/29 Javascript
[48:39]Ti4主赛事胜者组第一天 EG vs NEWBEE 2
2014/07/19 DOTA
[13:25]VP vs VICI (BO3)
2018/06/07 DOTA
Python爬虫代理IP池实现方法
2017/01/05 Python
Python3内置模块之json编解码方法小结【推荐】
2020/12/09 Python
bluepy 一款python封装的BLE利器简单介绍
2019/06/25 Python
Python中的整除和取模实例
2020/06/03 Python
python实现学生成绩测评系统
2020/06/22 Python
python 实现波浪滤镜特效
2020/12/02 Python
检测浏览器是否支持html5视频的代码
2013/03/28 HTML / CSS
英国最大的在线蜡烛商店:Candles Direct
2019/03/26 全球购物
工程造价管理专业大专生求职信
2013/10/06 职场文书
教师读书活动总结
2014/05/07 职场文书
科学发展观标语
2014/10/08 职场文书
干部培训工作总结2015
2015/05/25 职场文书
详解如何修改nginx的默认端口
2021/03/31 Servers
Python初识逻辑与if语句及用法大全
2021/08/07 Python
MySQL详细讲解变量variables的用法
2022/06/21 MySQL