首页 > Web开发 > 详细

PHP base62编码解码实现

时间:2015-02-06 13:03:38      阅读:293      评论:0      收藏:0      [点我收藏+]
 1 <?php
 2 /**
 3 *    @desc base62编码解码实现
 4 *    @param String $data
 5 *    @author Space
 6 *    @date 2014/8/6
 7 **/
 8 
 9 function base62_encode($data){
10     $base62str = ‘0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ‘;
11     $data = strval($data);
12     $base62 = str_split($base62str);
13     $len = strlen($data);
14     $i = 0;
15     $tmpArr = array();
16     while($i<$len){
17         $val = $data[$i];
18         $tmp = str_pad(decbin(ord($data[$i])),8,‘0‘,STR_PAD_LEFT );
19         $temp = str_split($tmp,4);
20         $tmpArr = array_merge($tmpArr,$temp);
21         ++$i;
22     }
23     $result = ‘‘;
24     $i = 0;
25     foreach($tmpArr as $arr){
26         $temp = bindec($arr)*4+$i%2;
27         $result .= $base62[$temp];
28         ++$i;
29     }
30     return $result;
31 }
32 
33 function base62_decode($data){
34     $base62str = ‘0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ‘;
35     $data = strval($data);
36     $base62 = str_split($base62str);
37     $base62Arr = array_flip($base62);
38     if(!preg_match(‘/[a-zA-Z0-9]+/‘,$data)){
39         return false;
40     }
41     $len = strlen($data);
42     $i = 0;
43     $tempArr = array();
44     while($i<$len){
45         $temp = decbin(($base62Arr[$data[$i]]-$i%2)/4);
46         $tempArr[] = str_pad($temp,4,‘0‘,STR_PAD_LEFT);
47         ++$i;
48     }
49     $result = ‘‘;
50     $tempArr = array_chunk($tempArr,2);
51     foreach($tempArr as $arr){
52         $result .= chr(bindec(join(‘‘,$arr)));
53     }
54     return $result;
55 }

还可以根据需要$base62str变量中字符随机排序下,相当于一个简易的加密,不过意义不大。

PHP base62编码解码实现

原文:http://www.cnblogs.com/spacex/p/4276676.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!