mb_check_encoding 检查字符串在指定的编码里是否有效
本文章来给大家介绍一个函数mb_check_encoding功能是检查字符串在指定的编码里是否有效
声明: 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 --; //开源代码phpfensi.com } } } return true; } // end of check_utf8 ?>查看更多关于mb_check_encoding 检查字符串在指定的编码里是否有的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did31081