[转]全国企业工商营业执照网络在线查询入口链接 - 『 生活便利指南』

2015年10月11日星期日 | | 0 评论 |

具体查询办法:
1、网络查询:点击各省市的链接直接进入各地工商局网站-->企业查询-->输入营业执照号码查询;一般只能验证企业的真实性,了解企业基本信息。
2、电话查询:当地"12315"消费者投诉举报专线电话(有的地方不给查);
3、工商局查询:如果您要查询详细企业信息,则必须携带个人身份证件或公司证明材料到工商部门的档案窗口查询。
中华人民共和国国家工商行政管理总局网址:http://www.saic.gov.cn

 

 

华北区

 

北京市

 

东城区 西城区 崇文区 宣武区 朝阳区 海淀区 丰台区 石景山区 门头沟区 房山区 通州区 顺义区 昌平区 大兴区 怀柔区 平谷区 密云县 延庆县

 

天津市

 

工商局和平分局河东分局河西分局南开分局红桥分局河北分局塘沽分局汉沽分局大港分局东丽分局津南分局西青分局北辰分局武清分局宝坻分局宁河分局静海分局蓟县分局开发分局保税分局园区分局

 

河北省

 

石家庄市 唐山市 秦皇岛市 邯郸市 邢台市 保定市 张家口市 承德市 沧州市 廊坊市 衡水市

 

山西省

 

太原市 | 大同市 | 阳泉市 | 长治市 | 晋城市 | 朔州市 | 晋中市 | 运城市 | 忻州市 | 临汾市 | 吕梁市 | 太原经济技术开发区 | 太原高新开发区

 

内蒙古区

呼和浩特市 包头市 乌海市 赤峰市 通辽市 鄂尔多斯市 呼伦贝尔市 兴安盟 锡林郭勒盟 乌兰察布 巴彦淖尔 阿拉善盟 满洲里市 二连浩特市

 

华东区

 

上海市

 

黄浦区 卢湾区 徐汇区 长宁区 静安区 普陀区 闸北区 虹口区 杨浦区 宝山区 闵行区 嘉定区 浦东新区 松江区 金山区 青浦区 南汇区(惠南镇) 奉贤区(南桥镇) 崇明县(城桥镇)

 

江苏省

 

南京|无锡|徐州|常州|苏州|南通|连云港|淮安|盐城|扬州|镇江|泰州|宿迁|苏州工业园区|张家港保税区

 

浙江省

 

杭州市工商局 宁波市工商局 金华市工商局 温州市工商局 台州市工商局 丽水市工商局 绍兴市工商局 衢州市工商局 舟山市工商局 嘉兴市工商局 湖州市工商局 温岭红盾信息网

 

安徽省

 

合肥 芜湖 蚌埠 淮南 马鞍山 淮北 铜陵 安庆 黄山 滁州 阜阳 宿州 巢湖 六安 亳州 池州 宣城

 

福建省

 

福州市 厦门市 三明市 莆田市 泉州市 漳州市 南平市 龙岩市 宁德市 石狮

 

江西省

 

南昌市 九江市 上饶市 景德镇市 新余市 赣州市 宜春市 鹰潭市 抚州市 吉安市 萍乡市

 

山东省

 

济南市 青岛市 淄博市 枣庄市 东营市 潍坊市 烟台市 威海市 济宁市 泰安市 日照市 莱芜市 德州市 临沂市 聊城市 滨州市 菏泽市

 

中南区

 

河南省

 

郑州市 开封市 洛阳市 平顶山市 新乡市 焦作市 安阳市 鹤壁市 濮阳市 三门峡市 济源市 南阳市 商丘市 周口市 许昌市 漯河市 驻马店市 信阳市

 

湖北省

 

十堰市 襄樊市 随州市 孝感市 黄石市 武汉市 黄冈市 鄂州市 咸宁市 潜江市 仙桃市 天门市 荆门市 荆州市 恩施市 神农架 宜昌市

 

湖南省

 

长沙市 株州市 岳阳市 常德市 郴州市 益阳市 怀化市 娄底市 湘潭市 湘西市

 

广东省

 

广州市|深圳市|惠州市|梅州市|汕头市|清远市|韶关市|潮州市|东莞市|珠海市|佛山市|江门市|云浮市|湛江市|揭阳市|茂名市|汕尾市|阳江市|肇庆市|中山市

 

广西区

 

南宁市 柳州市 桂林市 梧州市 北海市 防城港市 钦州市 贵港市 玉林市 百色市 贺州市 河池市 来宾市

 

海南省

 

海口市 三亚市 五指山市 琼海市 儋州市 琼山市 文昌市 万宁市 东方市

 

东北区

 

辽宁省

 

沈阳市 大连市 鞍山市 抚顺市 本溪市 丹东市 锦州市 营口市 阜新市 辽阳市 铁岭市 朝阳市 盘锦市 葫芦岛市

 

吉林省

 

长春市 吉林市 四平市 辽源市 通化市 白山市 松原市 白城市 延边朝鲜自治州

 

黑龙江省

 

哈尔滨市 齐齐哈尔市 鹤岗市 双鸭山市 鸡西市 大庆市 伊春市 牡丹江市 佳木斯市 七台河市 黑河市 绥化地区 大兴安岭地区

 

西北区

 

陕西省

 

西安市 铜川市 宝鸡市 咸阳市 渭南市 延安市 汉中市 榆林市 安康市 商洛市

 

甘肃省

 

兰州市 天水市 嘉峪关 武威市 金昌市 酒泉市 张掖市 庆阳市 平凉市 白银市 定西市 陇南市 临夏州 甘南州

 

青海省

 

西宁市 海东地区 海北藏族自治州 黄南藏族自治州 海南藏族治州 果洛藏族自治州 玉树藏族自治州 海西蒙古族藏族自治州

 

宁夏区

 

银川市 石嘴山市 吴忠市 固原市

 

新疆区

 

阿克苏 昌吉 克拉玛依 博尔塔拉 克孜勒苏 巴音敦楞 哈密 石河子 博乐 伊犁 吐鲁番 塔城 阿勒泰 喀什 高新技术开发区工商局

 

西南区

 

重庆市

 

渝中区 大渡口区 江北区 沙坪坝区 九龙坡区 南岸区 北碚区 万盛区 双桥区 渝北区 巴南区 万州区 涪陵区 黔江区 长寿区(凤城镇) 永川市 合川市 江津市 南川市

 

四川省

 

成都市 德阳市 绵阳市 自贡市 雅安市 乐山市 巴中市 达州市 资阳市 遂宁市 眉山市 泸州市 攀枝花市 泸州市 广元市 阿坝州 凉山州 内江市 南充市 宜宾市 内江市中区 巴中经济开发区 巴中直属分局 南江县 隆昌县 威远县 东兴区 绵阳直属分局 北川县 涪城区 游仙区

 

贵州省

 

贵阳市 六盘水市 遵义市 安顺市 铜仁地区(铜仁市) 毕节地区(毕节市) 黔西南布依族苗族自治州(兴义市) 黔东南苗族侗族自治州 黔南布依族苗族自治州(都匀市)

 

云南省

 

昆明市 曲靖市 玉溪市 保山市 昭通市 思茅地区(思茅市) 临沧地区(临沧县) 丽江地区 文山壮族苗族自治州 红河哈尼族彝族自治州(个旧市) 西双版纳傣族自治州(景洪市) 楚雄彝族自治州(楚雄市) 大理白族自治州(大理市) 德宏傣族景颇族自治州(潞西市) 怒江傈傈族自治州(泸水县六库镇) 迪庆藏族自治州(香格里拉县)

 

西藏区

 

拉萨市 那曲地区(那曲县) 昌都地区(昌都县) 山南地区(乃东县) 日喀则地区(日喀则市) 阿里地区(噶尔县) 林芝地区(林芝县八一镇)

参考: http://bbs.fjbjdd.com/thread-1301-1-1.html

分享php实现JavaScript中escape函数加密与unescape解密

| | 0 评论 |

在json中不支持中文,用它传送中文数据就会出现数据丢失或者乱码,必须在传送前对要发送的字符串进行编码,由于传送过去需要用js进行数据解析,考虑 到js中有unescape函数,故若在php中有个escape函数,对数据进行编码,在客户端用unescape进行 解码,这样就会方便很多。 

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

  1. function phpescape($str){ 
  2.     preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/",$str,$newstr); 
  3.     $ar = $newstr[0]; 
  4.     foreach($ar as $k=>$v){ 
  5.         if(ord($ar[$k])>=127){ 
  6.             $tmpString=bin2hex(iconv("GBK","ucs-2",$v)); 
  7.             if (!eregi("WIN",PHP_OS)){ 
  8.                 $tmpString = substr($tmpString,2,2).substr($tmpString,0,2); 
  9.             } 
  10.             $reString.="%u".$tmpString; 
  11.         } else { 
  12.             $reString.rawurlencode($v); 
  13.         } 
  14.     } 
  15.     return $reString; 
  16. }  



这个函数可以很好的工作,但是,也许有新手不理解这个函数的原理(比如我),用起来总是不放心,现在我就来解释一下这个函数的原理。而且我认为,拿别人的代码来复用,好比站在了巨人的肩膀上,但是若不理解别人的代码,迟早要掉到地面上。 

第一句:preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/",$str,$r);这个是用正则表达式匹 配字符串中所有的字符,[\x80-\xff]. 匹配的是汉字,\x表示匹配字符的16进制编码,[ ] 是类选择符,"." 表示任意一个字符,这样[\x80-\xff].匹配的是两个字符,其中第一个就是16进制从80到ff的字符,而这恰好就是汉字编码的第一个字符。这样 就能完整的匹配一个汉字。关于unicode中汉字的编码,大家可以到网上搜索一下。同理,[\x01-\x7f]+英文字符串,因为最早的英文是 ASCII编码,编码值小于128,也就是16进制的从01到7f,"+"表示一个或者多个字符,这样[\x01-\x7f]+就能匹配连续多个英文字符 串。 

$ar = $r[0];             //$r[0]里存放是匹配到的数组 
  foreach($ar as $k=>$v) { 
    if(ord($v[0]) < 128)                 //假如字符编码值小于128,说明是个英文字符 
      $ar[$k] = rawurlencode($v);    //直接用rawurlencode编码 
    else 
      $ar[$k] = "%u".bin2hex(iconv("GB2312","UCS-2",$v));    //否则的话用iconv函数把汉字转变成ucs-2编码,也就是unicode编码 
  } 

这个就是关于php中escape函数的一个实现,欢迎大家补充 

有时候可能会遇到PHP版本不同,导致出来结果不同,以致于乱码 
下面这个备用 

php提供的URL编码函数是基于字节的,对由ie的javascript函数escape编码的数据就无能为力了。 
因此在此共享本人的php版的escape/unescape函数 

一个加密一个解密的

  1. function escape($str) { 
  2.   preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/",$str,$r); 
  3.   $ar = $r[0]; 
  4.   foreach($ar as $k=>$v) { 
  5.     if(ord($v[0]) < 128
  6.       $ar[$k] = rawurlencode($v); 
  7.     else 
  8.       $ar[$k] = "%u".bin2hex(iconv("GB2312","UCS-2",$v)); 
  9.   } 
  10.   return join("",$ar); 
  11.  
  12. function unescape($str) { 
  13.   $str = rawurldecode($str); 
  14.   preg_match_all("/(?:%u.{4})|.+/",$str,$r); 
  15.   $ar = $r[0]; 
  16.   foreach($ar as $k=>$v) { 
  17.     if(substr($v,0,2) == "%u" && strlen($v) == 6) 
  18.       $ar[$k] = iconv("UCS-2","GB2312",pack("H4",substr($v,-4))); 
  19.   } 
  20.   return join("",$ar); 
参考:http://www.cuplayer.com/player/PlayerCodeJS/2014/0711/1429.html

其它:

//编码,编码后为小写
function escape($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//IGNORE",$v));
    if (!eregi("WIN",PHP_OS)){
     $tmpString = substr($tmpString,2,2).substr($tmpString,0,2);
    }
    $reString.="%u".$tmpString;
   }else{
    $reString.= rawurlencode($v);
   }
}
return $reString;
}

//解码为HTML实体字符
function unescape ($source){ 
$decodedStr = ""; 
$pos = 0; 
$len = strlen ($source); 
while ($pos < $len){ 
   $charAt = substr ($source, $pos, 1); 
         if ($charAt == '%'){ 
    $pos++; 
    $charAt = substr ($source, $pos, 1); 
             if ($charAt == 'u'){ 
     // we got a unicode character 
     $pos++; 
     $unicodeHexVal = substr ($source, $pos, 4); 
     $unicode = hexdec ($unicodeHexVal); 
     $entity = "&#". $unicode . ';'; 
     $decodedStr .= utf8_encode ($entity); 
     $pos += 4; 
             }else{ 
     // we have an escaped ascii character 
     $hexVal = substr ($source, $pos, 2); 
     $decodedStr .= chr (hexdec ($hexVal)); 
     $pos += 2; 
    } 
   }else{ 
    $decodedStr .= $charAt; 
    $pos++; 
   } 

return $decodedStr; 
}


//直接解码为字符串。网上找到的这个版本的函数是解码为HTML实体字符,这是我修改的
function unescape($source){ 
$decodedStr = ""; 
$pos = 0; 
$len = strlen ($source); 
while ($pos < $len){ 
   $charAt = substr ($source, $pos, 1); 
         if ($charAt == '%'){ 
    $pos++; 
    $charAt = substr ($source, $pos, 1); 
             if ($charAt == 'u'){ 
     // we got a unicode character 
     $pos++; 
     $unicodeHexVal = substr ($source, $pos, 4); 
     $unicode = hexdec ($unicodeHexVal); 
     $decodedStr .= u2utf82gb($unicode); 
     $pos += 4; 
             }else{ 
     // we have an escaped ascii character 
     $hexVal = substr ($source, $pos, 2); 
     $decodedStr .= chr (hexdec ($hexVal)); 
     $pos += 2; 
    } 
   }else{ 
    $decodedStr .= $charAt; 
    $pos++; 
   } 

return $decodedStr; 
}
function u2utf82gb($c){
$strphp = "";
if($c < 0x80){
   $strphp .= $c;
}elseif($c < 0x800){
   $strphp .= chr(0xC0 | $c>>6);
   $strphp .= chr(0x80 | $c & 0x3F);
}elseif($c < 0x10000){
   $strphp .= chr(0xE0 | $c>>12);
   $strphp .= chr(0x80 | $c>>6 & 0x3F);
   $strphp .= chr(0x80 | $c & 0x3F);
}elseif($c < 0x200000){
   $strphp .= chr(0xF0 | $c>>18);
   $strphp .= chr(0x80 | $c>>12 & 0x3F);
   $strphp .= chr(0x80 | $c>>6 & 0x3F);
   $strphp .= chr(0x80 | $c & 0x3F);
}
return iconv('UTF-8', 'GB2312', $strphp);
}

参考:http://blog.163.com/[email protected]/blog/static/13982406120105264326456/


分享PHP版完善的ESCAPE/UNESCAPE/UNICODE/UTF8互转函数

| | 0 评论 |

分享PHP版完善的ESCAPE/UNESCAPE/UNICODE/UTF8互转函数

2005-12-10。从下午12点奋斗到晚上9点。
2005-12-11。根据唠叨的回帖,更新了转换的算法。对于那篇unicode编码的faq.我总算理解了整个转换的过程。理解了这个公式。

参考文章http://tech.163.com/05/0516/10/1JS9KEGA00091589.html
UTF编码

  UTF-8就是以8位为单元对UCS进行编码。从UCS-2到UTF-8的编码方式如下:

UCS-2编码(16进制)UTF-8 字节流(二进制)
0000 - 007F0xxxxxxx
0080 - 07FF110xxxxx 10xxxxxx
0800 - FFFF1110xxxx 10xxxxxx 10xxxxxx

  例如"汉"字的Unicode编码是6C49。6C49在0800-FFFF之间,所以肯定要用3字节模板了:1110xxxx 10xxxxxx 10xxxxxx。将6C49写成二进制是:0110 110001 001001, 用这个比特流依次代替模板中的x,得到:11100110 10110001 10001001,即E6 B1 89。




终于将unicode和utf8互转搞定。


如果utf-8编码的字符ch是3个字节。xx yy zz
将xx和1F AND 操作得到 a
将yy和7F AND 操作得到 b
将zz和7F AND 操作得到 c

(64a+b)*64+c = ch(unicode编码)

echo.php没什么。就是几个函数。

<?php 
require_once("echo.php");

$data = "大闹西奴xx x8890.-_奴";
echo(urlencode($data));echo("<br/>");
//写入unicode文件
$ucs2data = utf8ToUnicode($data,"little");
$endian = chr(0xFE).chr(0xFF);
$endian =  chr(0xFF).chr(0xFE);
$rt = file_put_contents ( "ucs2.txt", $endian.$ucs2data); 
                //19:32,utf8toUnicode函数ok. 
                //20:09。发现little endian 和big endian问题。并解决。
                //big endian 方式存入的unicode字符串,ue和editplus均不能
                //识别。只有notepad正常识别。

$rt = file_put_contents ( "usc2ys_data.txt", $ucs2_ysdata);
//写入utf8文件
$utf8data = unicodeToUtf8($ucs2data);   // 20:52. 将字串转回utf8码ok.
$rt = file_put_contents ( "utf8.txt", $utf8data);
echo(urlencode($utf8data));echo("<br/>");

$esc = utf8Escape($data);
echot($esc);
$esc = phpEscape($data);
echot($esc);
$unesc = phpUnescape($esc);
echot($unesc);


/**
* 此函数将utf8编码字串转为unicode编码字符串 
* 参数 str ,utf8编码的字符串。
* 参数 order,存放数据格式,是big endian还是little endian,默认的unicode存放次序是little.
* 如:"大"的unicode码是 5927。little方式存放即为:27 59 。big方式则顺序不变:59 27.
* little 存放格式文件的开头均需有FF FE。big 存放方式的文件开头为 FE FF。否则。将会产生严重混乱。
* 本函数只转换字符,不负责增加头部。
* iconv转换过来的字符串是 big endian存放的。
* 返回 ucs2string , 转换过的字符串。 
* 感谢唠叨(xuzuning)
*/
function utf8ToUnicode($str,$order="little")
{
  $ucs2string ="";
    $n=strlen($str);
    for ($i=0;$i<$n ;$i++ ) {
  $v = $str[$i];
  $ord = ord($v);
  if( $ord<=0x7F){ //  0xxxxxxx  
     if ($order=="little") {
       $ucs2string .= $v.chr(0); 
   }
   else {
       $ucs2string .= chr(0).$v; 
   }
  }
  elseif ($ord<0xE0 && ord($str[$i+1])>0x80) {  //110xxxxx 10xxxxxx 
   $a = (ord($str[$i]) & 0x3F )<<6;
   $b =  ord($str[$i+1]) & 0x3F ;
   $ucsCode = dechex($a+$b);   //echot($ucsCode);
   $h = intval(substr($ucsCode,0,2),16);
   $l  =  intval(substr($ucsCode,2,2),16);
   if ($order=="little") {
       $ucs2string   .= chr($l).chr($h); 
   }
   else {
        $ucs2string   .= chr($h).chr($l); 
   }
   $i++;
  }elseif ($ord<0xF0  && ord($str[$i+1])>0x80  && ord($str[$i+2])>0x80) { //1110xxxx 10xxxxxx 10xxxxxx 
      $a = (ord($str[$i]) & 0x1F)<<12;     
   $b = (ord($str[$i+1]) & 0x3F )<<6;
   $c =  ord($str[$i+2]) & 0x3F ;
   $ucsCode = dechex($a+$b+$c);   //echot($ucsCode);
   $h = intval(substr($ucsCode,0,2),16);
   $l  =  intval(substr($ucsCode,2,2),16);
   if ($order=="little") {
       $ucs2string   .= chr($l).chr($h); 
   }
   else {
        $ucs2string   .= chr($h).chr($l); 
   }   
   $i +=2;
  }
    }
 return $ucs2string;   
} // end func

/* 
* 此函数将unicode编码字串转为utf8编码字符串 
* 参数 str ,unicode编码的字符串。
* 参数 order ,unicode字串的存放次序,为big endian还是little endian.
* 返回 utf8string , 转换过的字符串。
*
*/
function unicodeToUtf8($str,$order="little")
{
 $utf8string ="";
    $n=strlen($str);
    for ($i=0;$i<$n ;$i++ ) {
  if ($order=="little") {
      $val = dechex(ord($str[$i+1])).dechex(ord($str[$i]));
  }
  else {
   $val = dechex(ord($str[$i])).dechex(ord($str[$i+1]));
  }
  $val = intval($val,16); //由于上次的.连接,导致$val变为字符串,这里得转回来。
  $i++; //两个字节表示一个unicode字符。
  $c = "";
  if($val < 0x7F){        // 0000-007F
   $c .= chr($val);
  }elseif($val < 0x800) { // 0080-0800
   $c .= chr(0xC0 | ($val / 64));
   $c .= chr(0x80 | ($val % 64));
  }else{                // 0800-FFFF
   $c .= chr(0xE0 | (($val / 64) / 64));
   $c .= chr(0x80 | (($val / 64) % 64));
   $c .= chr(0x80 | ($val % 64));
   //echot($c);
  }  
  $utf8string .= $c;
    }
 return $utf8string;
} // end func

 

/* 
* 将utf8编码的字符串编码为unicode 码型,等同escape 
* 之所以只接受utf8码,因为只有utf8码和unicode之间有公式转换,其他的编码都得查码表来转换。
* 不知道查找utf8码的正则是否完全正确。迷茫ing
* 虽然调用utf2ucs对每个字符进行码值计算。效率过低。然而,代码清晰,要是把那个计算过程嵌入。
* 代码就不太容易阅读了。
*/
function utf8Escape($str) {
  preg_match_all("/[\xC0-\xE0].|[\xE0-\xF0]..|[\x01-\x7f]+/",$str,$r);
  //prt($r);
  $ar = $r[0];
  foreach($ar as $k=>$v) {
 $ord = ord($v[0]);
    if( $ord<=0x7F)
      $ar[$k] = rawurlencode($v);
    elseif ($ord<0xE0) { //双字节utf8码
      $ar[$k] = "%u".utf2ucs($v);
    }
  elseif ($ord<0xF0) { //三字节utf8码
      $ar[$k] = "%u".utf2ucs($v);
 }
  }//foreach
  return join("",$ar);
}

/**
*
* 把utf8编码字符转为ucs-2编码
* 参数 utf8编码的字符。
* 返回 该字符的unicode码值。知道了码值,你就可以使用chr将字符弄出来了。

*  原理:unicode转为utf-8码的算法是。头部固定位或。
 该过程的逆向算法就是这个函数了,头部固定位反位与。
*/

function utf2ucs($str){
 $n=strlen($str);
 if ($n=3) {
     $highCode = ord($str[0]);     
  $midCode = ord($str[1]);
     $lowCode = ord($str[2]);
  $a   = 0x1F & $highCode;
  $b   = 0x7F & $midCode;
  $c   = 0x7F & $lowCode;
  $ucsCode = (64*$a + $b)*64 + $c;  
 }
 elseif ($n==2) {
    $highCode = ord($str[0]);     
     $lowCode = ord($str[1]);
  $a   = 0x3F & $highCode;  //0x3F是0xC0的补数
  $b   = 0x7F & $lowCode;  //0x7F是0x80的补数
  $ucsCode = 64*$a + $b;  
 }
 elseif($n==1) {
     $ucscode = ord($str);
 }
 return dechex($ucsCode);
}

 


/* 
* 用处 :此函数用来逆转javascript的escape函数编码后的字符。
* 关键的正则查找我不知道有没有问题.
* 参数:javascript编码过的字符串。
* 如:unicodeToUtf8("%u5927")= 大 
* 2005-12-10 

*/
function phpUnescape($escstr){
  preg_match_all("/%u[0-9A-Za-z]{4}|%.{2}|[0-9a-zA-Z.+-_]+/",$escstr,$matches); //prt($matches);
  $ar = &$matches[0];
  $c = "";
  foreach($ar as $val){
 if (substr($val,0,1)!="%") { //如果是字母数字+-_.的ascii码
     $c .=$val;
 }
 elseif (substr($val,1,1)!="u") { //如果是非字母数字+-_.的ascii码
  $x = hexdec(substr($val,1,2));
     $c .=chr($x);
 }
 else { //如果是大于0xFF的码
  $val = intval(substr($val,2),16);
  if($val < 0x7F){        // 0000-007F
   $c .= chr($val);
  }elseif($val < 0x800) { // 0080-0800
   $c .= chr(0xC0 | ($val / 64));
   $c .= chr(0x80 | ($val % 64));
  }else{                // 0800-FFFF
   $c .= chr(0xE0 | (($val / 64) / 64));
   $c .= chr(0x80 | (($val / 64) % 64));
   $c .= chr(0x80 | ($val % 64));
  }
 }
  }
  return $c;
}

 

/* 
* 等同escape 
* 来自网上。本文件其他几个函数都参考了这个函数里面的关键算法。
*/
function phpEscape($str,$encode="") {
  if ($encode=="" && !(function_exists("mb_detect_encoding"))) {
      echo "error You must enter the string's encoding or extend the php for mb_string";
   return ;
  }
  elseif($encode=="") {
   echo "Use mb_string function to detect the string's encoding <br/>";
      $encode = mb_detect_encoding($str);
  }
  preg_match_all("/[\xC0-\xE0].|[\xE0-\xF0]..|[\x01-\x7f]+/",$str,$r);
  //prt($r);
  $ar = $r[0];
  foreach($ar as $k=>$v) {
 $ord = ord($v[0]);
    if( $ord<=0x7F)
      $ar[$k] = rawurlencode($v);
    elseif ($ord<0xE0) {
      $ar[$k] = "%u".bin2hex(iconv($encode,"UCS-2",$v));
    }
  elseif ($ord<0xF0) {
      $ar[$k] = "%u".bin2hex(iconv($encode,"UCS-2",$v));
 }
  }//foreach
  return join("",$ar);
}

?>

参考: http://gudai.cnblogs.com/articles/294580.html

更多:  美国VPS  博客 西部数码分销商 便宜VPS   捷飞网络科技论坛  捷飞网络  云主机,VPS 西部数码代理

分享php实现javascript的fromCharCode方法

2015年10月10日星期六 | | 0 评论 |

fromCharCode() 可接受一个指定的 Unicode 值,然后返回一个字符串。
语法:
String.fromCharCode(numX,numX,…,numX)

注意:
该方法是 String 的静态方法,字符串中的每个字符都由单独的数字 Unicode 编码指定。
它不能作为您已创建的 String 对象的方法来使用。因此它的语法应该是 String.fromCharCode()

PHP实现javascript的fromCharCode()方法:

1
2
3
4
5
6
7
8
9
10
function fromCharCode()
{
    $codes= func_get_args();
    $str= '';
    foreach ($codes as $code)
    {
        $str.= mb_convert_encoding('&#' . intval($code) . ';', 'UTF-8', 'HTML-ENTITIES');
    }
    return $str;
}
使用示例:
1
2
$str = fromCharCode(72,69,76,76,79);
var_dump($str);

参考: http://www.phpjiayuan.com/90/223.html


所有文章收集于网络,如果有牵扯到版权问题请与本站站长联系。谢谢合作![email protected]