Heim  >  Artikel  >  Backend-Entwicklung  >  PHP base62编码解码实现

PHP base62编码解码实现

WBOY
WBOYOriginal
2016-06-23 13:40:101551Durchsuche

 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变量中字符随机排序下,相当于一个简易的加密,不过意义不大。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn