数码资讯
对encode64编码类的一个实例的PHP实现
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
本文阐述了encode64编码类的PHP实现。分享给你供你参考。以下是如下:
encode64能在最短的26个字母的英文数字加- _两符号编码的数据,网络中的字符串可以自由流动,不考虑由自动转码造成的混乱。缺点:大字符串太慢,原因不明,可能PHP脚本本身很慢。所以它有很多内置函数,如果脚本不能忍受的话,这些函数。javascript没问题,脚本快得多。
< PHP
/ / encode64编码可以取代encodeURI,encodeURIComponent,和endode功能的同时
因为这些字符被选中不编码。
类encode64 {
函数代码($ STR){
美元关键= 'paawo65uf7ik2vi9-xq8cftexlcdy1hd3tv0ryzjbpn_blnss4mgrkqwmzjeuh;
美元= strtobytes($str);
$ =计数($);
$ = 3;
$;$ i = 2;$ = 0;
(为;$ i $ $;$ i = 3){
$ $ = { $ I - 2 } +($ $ I - 1 } < < 8)+($ $ i } < < 16);
美元美元美元的关键{ } V 0x3F;
$ S =美元关键{($ V,6)0x3F };
$ S =美元关键{($ V,12)0x3F };
$ $ = $($ > 18)};
}
如果($ = 1){
$ = $ $ { I - 2 };
美元美元美元的关键{ } V 0x3F;
$ S =美元关键{($ V,6)0x3F };
{ { if($ = 2)
$ $ = { $ I - 2 } +($ $ I I - 1 } < < 8);
美元美元美元的关键{ } V 0x3F;
$ S =美元关键{($ V,6)0x3F };
$ S =美元关键{($ V,12)0x3F };
}
返回$;
}
功能解码($ codestr){
美元关键= 'paawo65uf7ik2vi9-xq8cftexlcdy1hd3tv0ryzjbpn_blnss4mgrkqwmzjeuh;
数组();
($ i = 0;$ i < 64;$ + +){
$ $;
}
$ len = strlen($ codestr);
$ = 4;
打扫地板(Len美元=美元/ 4)* 3;
如果(res = = 2美元)整理= 1美元;
elseif(res = = 3美元)整理= 2美元;
为代码范围(0,$整理);
$ I = 3;$ = 0;$ j = 0;
(为;$ i $ $;$ i = 4){
V =美元美元美元美元codestr DIC { { 3 } }我;
V =美元美元美元美元codestr DIC { { 2 } } < 6我;
V =美元美元美元美元codestr DIC { { 1 } } < 12我;
五美元美元美元美元codestr DIC { {我} } < = 18;
代码{ } =美元美元美元V 0xff {J}.;
为代码{ $ J + 1 } =($ V>8)0xff;
为代码{ $ J + 2 } =($ V>16)0xff;
$ j=3;
}
如果($ = 2){
正确的字节数必须大于2或3,而不是1,如果存在,则放弃。
V =美元美元美元美元codestr DIC { { 3 } }我;
V =美元美元美元美元codestr DIC { { 2 } } < 6我;
代码{ } =美元美元美元V 0xff {J}.;
{ { if($ = 3)
V =美元美元美元美元codestr DIC { { 3 } }我;
V =美元美元美元美元codestr DIC { { 2 } } < 6我;
V =美元美元美元美元codestr DIC { { 1 } } < 12我;
代码{ } =美元美元美元V 0xff {J}.;
为代码{ $ J + 1 } =($ V>8)0xff;
}
返回bytestostr($代码);
}
}
功能bytestostr($字节){
$ =;
foreach($字节达CH){
$str = CHR($ CH);
}
返回iconv('utf-16be ','utf-8,$str);
}
功能strtobytes($str){
$str = iconv('utf-8 ','utf-16be,$str);
$ len = strlen(str);
字节=数组();
($ i = 0;$ i;
{ } = ORD美元字节($str {我});
}
返回$字节;
}
>
希望本文能对大家的PHP程序设计有所帮助。
encode64能在最短的26个字母的英文数字加- _两符号编码的数据,网络中的字符串可以自由流动,不考虑由自动转码造成的混乱。缺点:大字符串太慢,原因不明,可能PHP脚本本身很慢。所以它有很多内置函数,如果脚本不能忍受的话,这些函数。javascript没问题,脚本快得多。
< PHP
/ / encode64编码可以取代encodeURI,encodeURIComponent,和endode功能的同时
因为这些字符被选中不编码。
类encode64 {
函数代码($ STR){
美元关键= 'paawo65uf7ik2vi9-xq8cftexlcdy1hd3tv0ryzjbpn_blnss4mgrkqwmzjeuh;
美元= strtobytes($str);
$ =计数($);
$ = 3;
$;$ i = 2;$ = 0;
(为;$ i $ $;$ i = 3){
$ $ = { $ I - 2 } +($ $ I - 1 } < < 8)+($ $ i } < < 16);
美元美元美元的关键{ } V 0x3F;
$ S =美元关键{($ V,6)0x3F };
$ S =美元关键{($ V,12)0x3F };
$ $ = $($ > 18)};
}
如果($ = 1){
$ = $ $ { I - 2 };
美元美元美元的关键{ } V 0x3F;
$ S =美元关键{($ V,6)0x3F };
{ { if($ = 2)
$ $ = { $ I - 2 } +($ $ I I - 1 } < < 8);
美元美元美元的关键{ } V 0x3F;
$ S =美元关键{($ V,6)0x3F };
$ S =美元关键{($ V,12)0x3F };
}
返回$;
}
功能解码($ codestr){
美元关键= 'paawo65uf7ik2vi9-xq8cftexlcdy1hd3tv0ryzjbpn_blnss4mgrkqwmzjeuh;
数组();
($ i = 0;$ i < 64;$ + +){
$ $;
}
$ len = strlen($ codestr);
$ = 4;
打扫地板(Len美元=美元/ 4)* 3;
如果(res = = 2美元)整理= 1美元;
elseif(res = = 3美元)整理= 2美元;
为代码范围(0,$整理);
$ I = 3;$ = 0;$ j = 0;
(为;$ i $ $;$ i = 4){
V =美元美元美元美元codestr DIC { { 3 } }我;
V =美元美元美元美元codestr DIC { { 2 } } < 6我;
V =美元美元美元美元codestr DIC { { 1 } } < 12我;
五美元美元美元美元codestr DIC { {我} } < = 18;
代码{ } =美元美元美元V 0xff {J}.;
为代码{ $ J + 1 } =($ V>8)0xff;
为代码{ $ J + 2 } =($ V>16)0xff;
$ j=3;
}
如果($ = 2){
正确的字节数必须大于2或3,而不是1,如果存在,则放弃。
V =美元美元美元美元codestr DIC { { 3 } }我;
V =美元美元美元美元codestr DIC { { 2 } } < 6我;
代码{ } =美元美元美元V 0xff {J}.;
{ { if($ = 3)
V =美元美元美元美元codestr DIC { { 3 } }我;
V =美元美元美元美元codestr DIC { { 2 } } < 6我;
V =美元美元美元美元codestr DIC { { 1 } } < 12我;
代码{ } =美元美元美元V 0xff {J}.;
为代码{ $ J + 1 } =($ V>8)0xff;
}
返回bytestostr($代码);
}
}
功能bytestostr($字节){
$ =;
foreach($字节达CH){
$str = CHR($ CH);
}
返回iconv('utf-16be ','utf-8,$str);
}
功能strtobytes($str){
$str = iconv('utf-8 ','utf-16be,$str);
$ len = strlen(str);
字节=数组();
($ i = 0;$ i;
{ } = ORD美元字节($str {我});
}
返回$字节;
}
>
希望本文能对大家的PHP程序设计有所帮助。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。