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 相关文章推荐
?生?D片??C字串
Dec 06 PHP
PHP生成HTML静态页面实例代码
Aug 31 PHP
QueryPath PHP 中的jQuery
Apr 11 PHP
PHP CodeBase:将时间显示为&quot;刚刚&quot;&quot;n分钟/小时前&quot;的方法详解
Jun 06 PHP
destoon实现调用图文新闻的方法
Aug 21 PHP
php画图实例
Nov 05 PHP
php压缩和解压缩字符串的方法
Mar 14 PHP
php正则preg_replace_callback函数用法实例
Jun 01 PHP
基于PHP实现假装商品限时抢购繁忙的效果
Oct 16 PHP
php实现将base64格式图片保存在指定目录的方法
Oct 13 PHP
PHP框架实现WebSocket在线聊天通讯系统
Nov 21 PHP
基于php+MySql实现学生信息管理系统实例
Aug 04 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
ThinkPHP页面跳转success与error方法概述
2014/06/25 PHP
PHP7 echo和print语句实例用法
2019/02/15 PHP
基于JQUERY的多级联动代码
2012/01/24 Javascript
JavaScript的内存释放问题详解
2015/01/21 Javascript
javascript实现平滑无缝滚动
2020/08/09 Javascript
Bootstrap弹出框(modal)垂直居中的问题及解决方案详解
2016/06/12 Javascript
JS工作中的小贴士之”闭包“与事件委托的”阻止冒泡“
2016/06/16 Javascript
手机Web APP如何实现分享多平台功能
2016/08/19 Javascript
关于Stream和Buffer的相互转换详解
2017/07/26 Javascript
vue 封装自定义组件之tabal列表编辑单元格组件实例代码
2017/09/07 Javascript
基于Vue开发数字输入框组件
2017/12/19 Javascript
三种Webpack打包方式(小结)
2018/09/19 Javascript
js打开word文档预览操作示例【不是下载】
2019/05/23 Javascript
JS 自执行函数原理及用法
2019/08/05 Javascript
javascript实现视频弹幕效果(两个版本)
2019/11/28 Javascript
uniapp与webview之间的相互传值的实现
2020/06/29 Javascript
[08:02]DOTA2牵红线 zhou神抱得美人归
2014/03/22 DOTA
[52:06]完美世界DOTA2联赛决赛日 Inki vs LBZS 第一场 11.08
2020/11/10 DOTA
Python脚本实现代码行数统计代码分享
2015/03/10 Python
Python下的twisted框架入门指引
2015/04/15 Python
python字符串str和字节数组相互转化方法
2017/03/18 Python
python算法表示概念扫盲教程
2017/04/13 Python
PyQt5每天必学之工具提示功能
2018/04/19 Python
pip命令无法使用的解决方法
2018/06/12 Python
详解python:time模块用法
2019/03/25 Python
python写日志文件操作类与应用示例
2019/07/01 Python
Python使用Pandas库实现MySQL数据库的读写
2019/07/06 Python
python3.6生成器yield用法实例分析
2019/08/23 Python
Tensorflow的常用矩阵生成方式
2020/01/04 Python
安装python3.7编译器后如何正确安装opnecv的方法详解
2020/06/16 Python
用HTML5 实现橡皮擦的涂抹效果的教程
2015/05/11 HTML / CSS
HTML5新特性之type=file文件上传功能
2018/02/02 HTML / CSS
集世界奢侈品和设计师品牌的意大利精品买手店:Tessabit
2019/08/17 全球购物
餐厅筹备计划书
2014/04/25 职场文书
2014年政工师工作总结
2014/12/18 职场文书
严以用权学习心得体会
2016/01/12 职场文书