网站地图    收藏   

主页 > php专栏 > php函数大全 >

php判断字符串编码函数 - php函数

来源:自学PHP网    时间:2014-11-25 00:26 作者: 阅读:

[导读] 字符编码判断是我们时常全用于的一些东西,特别是我想判断用户输入的或提交过来的字符是什么编码从而进行有效的处理,下面我来给大家介绍php判断字符串编码函数.mb_detect_encoding()($...

php判断字符串编码函数

字符编码判断是我们时常全用于的一些东西,特别是我想判断用户输入的或提交过来的字符是什么编码从而进行有效的处理,下面我来给大家介绍php判断字符串编码函数.

  1. mb_detect_encoding()($str); 
  2. //判断字符串是什么编码 
  3. if ($tag === mb_convert_encoding(mb_convert_encoding($tag"GB2312""UTF-8"), "UTF-8""GB2312")) { 
  4. else {//如果是gb2312 的就转换为utf8的 
  5. $tag = mb_convert_encoding($tag'UTF-8''GB2312'); 

函数可以检测编码不过使用该函数必须打开php的extension=php_mbstring.dll扩展,如果大家使用的是空间而没修改php.ini配置文件夹的权限会不会有更好的函数来检查字符串编码呢,答应是肯定的.

判断字符串是否为UTF-8编码,代码如下:

  1. /** 
  2.  +---------------------------------------------------------- 
  3.  * 检查字符串是否是UTF8编码 
  4.  +---------------------------------------------------------- 
  5.  * @param string $string 字符串 
  6.  +---------------------------------------------------------- 
  7.  * @return Boolean 
  8.  +---------------------------------------------------------- 
  9.  */ 
  10. function is_utf8($string
  11.     return preg_match('%^(?: 
  12.          [x09x0Ax0Dx20-x7E]            # ASCII 
  13.        | [xC2-xDF][x80-xBF]             # non-overlong 2-byte 
  14.        |  xE0[xA0-xBF][x80-xBF]        # excluding overlongs 
  15.        | [xE1-xECxEExEF][x80-xBF]{2}  # straight 3-byte 
  16.        |  xED[x80-x9F][x80-xBF]        # excluding surrogates 
  17.        |  xF0[x90-xBF][x80-xBF]{2}     # planes 1-3 
  18.        | [xF1-xF3][x80-xBF]{3}          # planes 4-15 
  19.        |  xF4[x80-x8F][x80-xBF]{2}     # plane 16 
  20.    )*$%xs', $string); 

可检查出GB2312还是UTF-8,代码如下:

  1. function is_gb2312($str
  2.         for($i=0; $i<strlen($str); $i++) { 
  3.                 $v = ord( $str[$i] ); 
  4.                 if$v > 127) { 
  5.                         if( ($v >= 228) && ($v <= 233) ) 
  6.                         { //开源代码phpfensi.com 
  7.                                 if( ($i+2) >= (strlen($str) - 1)) return true;  // not enough 
  8. characters 
  9.                                 $v1 = ord( $str[$i+1] ); 
  10.                                 $v2 = ord( $str[$i+2] ); 
  11.                                 if( ($v1 >= 128) && ($v1 <=191) && ($v2 >=128) && ($v2 <= 191) ) // utf  
  12. 编码 
  13.                                         return false; 
  14.                                 else 
  15.                                         return true; 
  16.                         } 
  17.                 } 
  18.         } 
  19.         return true; 

有些朋友说可以使用mb_check_encoding函数来检查,这个本人没测试过大家可自行测试.

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论