宝马娱乐在线112222 > 网络应用 > PHP 正则匹配unicode 编码正则方法

原标题:PHP 正则匹配unicode 编码正则方法

浏览次数:60 时间:2019-10-01

php教程 正则匹配unicode 编码正则方法,因为unicode编码的特殊性,所以一般的中文或英文正则是不能正确取到我们想要的内容的,下面来看一款专业的unicode正则表达式吧。

汉字转换成unicode方法

看个unicode编码图。

 代码如下

图片 1

<?php
//将utf8编码的汉字转换为unicode
function htou($c){
 $n = (ord($c[0]) & 0x1f) << 12;
 $n = (ord($c[1]) & 0x3f) << 6;
 $n = ord($c[2]) & 0x3f;
 return $n;
}

$words = "0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrsruvwxyz!@#$%^&*()_+-=[],./{}|<>?'"你好啊我们";
$otherstr=preg_replace("//[x{0080}-x{00ff}]+/iu"," ",$words);
echo 'otherstr:',$otherstr;

//在代码中隐藏utf8格式的字符串
function my_utf8_unicode($str) {
 $encode='';
 for($i=0;$i<strlen($str);$i ){
  if(ord(substr($str,$i,1))> 0xa0){
   $encode.='&#'.htou(substr($str,$i,3)).';';
   $i =2;
  }else{
   $encode.='&#'.ord($str[$i]).';';
  }
 }
 return $encode;
}

echo my_utf8_unicode("哈哈ABC");
?>

汉字转换成unicode方法二

 代码如下

function getUnicode($word)
{
 // 转UTF8
 $word0 = iconv('gbk', 'utf-8', $word);
 $word1 = iconv('utf-8', 'gbk', $word0);
 $word =  ($word1 == $word) ? $word0 : $word;
 // 拆分汉字
 preg_match_all('#(?:[x00-x7F]|[xC0-xFF][x80-xBF]+)#s', $word, $array, PREG_PATTERN_ORDER);
 $return  = array();
 // 转换
 foreach ($array[0] as $cc)
 {
  $arr = str_split($cc);
  $bin_str = '';
  foreach ($arr as $value)
  {
   $bin_str .= decbin(ord($value));
  }
  $bin_str = preg_replace('/^.{4}(.{4}).{2}(.{6}).{2}(.{6})$/','$1$2$3', $bin_str);
  $return[] = '&#' . bindec($bin_str) . ';';
 }
 
 return implode('', $return);
}

函数用法:

 代码如下

本文由宝马娱乐在线112222发布于网络应用,转载请注明出处:PHP 正则匹配unicode 编码正则方法

关键词:

上一篇:php中iconv函数使用方法

下一篇:PHP has encountered an Access Violation at 7C94BD02解决方法