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));
    
    尝试一下
  • 相关页面

    is_dir() - 判断给定文件名是否是一个目录
    dir() - 返回一个 Directory 类实例
    glob() - 寻找与模式匹配的文件路径
    opendir() - 打开目录句柄
    sort() - 对数组排序