PHP mb_check_encoding mbstring 函数
-
定义和用法
mb_check_encoding - 检查字符串在指定的编码里是否有效 -
版本支持
PHP4 PHP5 PHP7 v4.4.3+支持 v5.1.3+支持 支持 -
语法
mb_check_encoding( [ string $var = NULL [, string $encoding = mb_internal_encoding() ]] )
mb_check_encoding() 检查指定的字节流在指定的编码里是否有效。它能有效避免所谓的“无效编码攻击(Invalid Encoding Attack)”。 -
参数
参数 必需的 描述 var 否 要检查的字节流。如果省略了这个参数,此函数会检查所有来自最初请求所有的输入。 encoding 否 期望的编码。 -
返回值
成功时返回 TRUE, 或者在失败时返回 FALSE。 -
示例
尝试一下function checkEncoding ( $string, $string_encoding ) { $fs = $string_encoding == 'UTF-8' ? 'UTF-32' : $string_encoding; $ts = $string_encoding == 'UTF-32' ? 'UTF-8' : $string_encoding; return $string === mb_convert_encoding ( mb_convert_encoding ( $string, $fs, $ts ), $ts, $fs ); } function detectEncoding($string) { $arr_encodings = [ 'CP1251', 'UCS-2LE', 'UCS-2BE', 'UTF-8', 'UTF-16', 'UTF-16BE', 'UTF-16LE', 'CP866', ]; foreach($arr_encodings as $encoding){ if (checkEncoding($string, $encoding)){ return $encoding; } } return false; } $str = 'test'; var_dump(detectEncoding($str));
-