Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1923129
  • 博文数量: 45
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 515
  • 用 户 组: 普通用户
  • 注册时间: 2019-08-05 16:22
文章分类

全部博文(45)

文章存档

2020年(4)

2019年(41)

我的朋友

分类: PHP

2019-12-13 09:03:13

定义和用法

mb_check_encoding - 检查字符串在指定的编码里是否有效

版本支持

PHP4 PHP5 PHP7
v4.4.3+支持 v5.1.3+支持 支持

语法


  1. mb_check_encoding( [ string $var = NULL [, string $encoding = mb_internal_encoding() ]] )
mb_check_encoding() 检查指定的字节流在指定的编码里是否有效。它能有效避免所谓的“无效编码攻击(Invalid Encoding Attack)”。

参数

参数 必需的 描述
var 要检查的字节流。如果省略了这个参数,此函数会检查所有来自最初请求所有的输入。
encoding 期望的编码。

示例


  1. function checkEncoding ( $string, $string_encoding )
  2. {
  3.         $fs = $string_encoding == 'UTF-8' ? 'UTF-32' : $string_encoding;
  4.         $ts = $string_encoding == 'UTF-32' ? 'UTF-8' : $string_encoding;
  5.         return $string === mb_convert_encoding ( mb_convert_encoding ( $string, $fs, $ts ), $ts, $fs );
  6. }
  7. function detectEncoding($string)
  8. {
  9.         $arr_encodings = [
  10.                 'CP1251',
  11.                 'UCS-2LE',
  12.                 'UCS-2BE',
  13.                 'UTF-8',
  14.                 'UTF-16',
  15.                 'UTF-16BE',
  16.                 'UTF-16LE',
  17.                 'CP866',
  18.         ];
  19.         foreach($arr_encodings as $encoding){
  20.                 if (checkEncoding($string, $encoding)){
  21.                         return $encoding;
  22.                 }
  23.         }
  24.         return false;
  25. }
  26. $str = 'test';
  27. var_dump(detectEncoding($str));

相关知识

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


阅读(1257) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~