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 相关文章推荐
基于qmail的完整WEBMAIL解决方案安装详解
Oct 09 PHP
PHP注释实例技巧
Oct 03 PHP
Thinkphp模板中使用自定义函数的方法
Sep 23 PHP
setcookie中Cannot modify header information-headers already sent by错误的解决方法详解
May 08 PHP
ThinkPHP中U方法的使用浅析
Jun 13 PHP
destoon利用Rewrite规则设置网站安全
Jun 21 PHP
WordPress中设置Post Type自定义文章类型的实例教程
May 10 PHP
Zend Framework分发器用法示例
Dec 11 PHP
Yii框架学习笔记之session与cookie简单操作示例
Apr 30 PHP
PHP的cookie与session原理及用法详解
Sep 27 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
Oct 22 PHP
Vagrant(WSL)+PHPStorm+Xdebu 断点调试环境搭建
Dec 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
PHP4在WinXP下IIS和Apache2服务器上的安装实例
2006/10/09 PHP
PHP中操作ini配置文件的方法
2013/04/25 PHP
PHP模板解析类实例
2015/07/09 PHP
[原创]php集成安装包wampserver修改密码后phpmyadmin无法登陆的解决方法
2016/11/23 PHP
Yii2实现跨mysql数据库关联查询排序功能代码
2017/02/10 PHP
详解Yii2.0 rules验证规则集合
2017/03/21 PHP
JavaScript效率调优经验
2009/06/04 Javascript
javascript 表单验证常见正则
2009/09/28 Javascript
在IE 浏览器中使用 jquery的fadeIn() 效果 英文字符字体加粗
2011/06/02 Javascript
读jQuery之八 包装事件对象
2011/06/21 Javascript
Javascript中Event属性搜集整理
2013/09/17 Javascript
让新消息在网页标题闪烁提示的jQuery代码
2013/11/04 Javascript
js中AppendChild与insertBefore的用法详细解析
2013/12/16 Javascript
HTML页面弹出居中可拖拽的自定义窗口层
2014/05/07 Javascript
JS动态加载当前时间的方法
2015/02/09 Javascript
JavaScript实现简单的二级导航菜单实例
2015/04/15 Javascript
javascript原始值和对象引用实例分析
2015/04/25 Javascript
jquery实现在网页指定区域显示自定义右键菜单效果
2015/08/25 Javascript
JavaScript 函数的执行过程
2016/05/09 Javascript
JS常用函数和常用技巧小结
2016/10/15 Javascript
jQuery UI 实例讲解 - 日期选择器(Datepicker)
2017/09/18 jQuery
原生JS获取元素的位置与尺寸实现方法
2017/10/18 Javascript
Vue单页面应用保证F5强刷不清空数据的解决方案
2018/01/31 Javascript
node.js调用C++函数的方法示例
2018/09/21 Javascript
Vue中使用canvas方法总结
2019/02/12 Javascript
vue@cli3项目模板怎么使用public目录下的静态文件
2020/07/07 Javascript
python实现文件分组复制到不同目录的例子
2014/06/04 Python
Python利用matplotlib生成图片背景及图例透明的效果
2017/04/27 Python
Python3多线程版TCP端口扫描器
2019/08/31 Python
PyTorch实现ResNet50、ResNet101和ResNet152示例
2020/01/14 Python
Tensorflow 1.0之后模型文件、权重数值的读取方式
2020/02/12 Python
解决import tensorflow as tf 出错的原因
2020/04/16 Python
用python实现学生管理系统
2020/07/24 Python
机械电子工程专业推荐信范文
2013/11/20 职场文书
会计专业大学生求职信范文
2014/01/28 职场文书
现场施工员岗位职责
2015/04/11 职场文书