php语言 百分网手机站

PHP解密Unicode及Escape加密字符串(2)

时间:2020-08-06 09:31:53 php语言

PHP解密Unicode及Escape加密字符串

  function unicode2utf8($c) {

  $str="";

  if ($c < 0x80) {

  $str.=chr($c);

  } else if ($c < 0x800) {

  $str.=chr(0xc0 | $c>>6);

  $str.=chr(0x80 | $c & 0x3f);

  } else if ($c < 0x10000) {

  $str.=chr(0xe0 | $c>>12);

  $str.=chr(0x80 | $c>>6 & 0x3f);

  $str.=chr(0x80 | $c & 0x3f);

  } else if ($c < 0x200000) {

  $str.=chr(0xf0 | $c>>18);

  $str.=chr(0x80 | $c>>12 & 0x3f);

  $str.=chr(0x80 | $c>>6 & 0x3f);

  $str.=chr(0x80 | $c & 0x3f);

  }

  return $str;

  }

  $str='%u5927%u5BB6%u597D%uFF0C我是孤魂!<br />\u8FD9\u662F\u6D4B\u8BD5\u6587\u672C\uFF01';

  echo uni_decode($str); // 大家好,我是孤魂!这是测试文本!

  在网上搜索一把,很多用php实现的escape函数,大同小异

  ?

  1

  2

  3

  4

  5

  6

  7

  8

  9

  10

  11

  12

  13

  14

  15

  16

  function phpescape($str){

  preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/",$str,$newstr);

  $ar = $newstr[0];

  foreach($ar as $k=>$v){

  if(ord($ar[$k])>=127){

  $tmpString=bin2hex(iconv("GBK","ucs-2",$v));

  if (!eregi("WIN",PHP_OS)){

  $tmpString = substr($tmpString,2,2).substr($tmpString,0,2);

  }

  $reString.="%u".$tmpString;

  } else {

  $reString.= rawurlencode($v);

  }

  }

  return $reString;

  }

【PHP解密Unicode及Escape加密字符串】相关文章:

PHP可逆加密解密算法09-26

PHP如何使用AES加密算法进行数据加密和解密09-24

BIOS设置的加密与解密10-02

PHP 中的加密技术及代码09-19

讲解java的纯数字加密解密11-24

PHP的字符串函数09-05

php的字符串常用函数09-12

php字符串分割的详解08-14

PHP常用字符串相关函数09-17

php数组和字符串互相转换实例09-14