标签:decoding php encoding url parameters
我正在为php寻找一个base32函数/类.我发现的不同类别和功能都非常无效.我运行了一个基准测试并得出以下结果:
10000个解码:
base32:2.3273秒
base64:0.0062秒
我使用的base32类是:
http://www.php.net/manual/en/function.base-convert.php#102232
有什么方法更简单吗?
我想使用base32的原因是它不区分大小写,因此我对url参数没有任何问题,这些参数在某些系统(例如电子邮件系统)上总是转换为小写字母.
如果您有更好的小写编码替代方案,我也很乐意听到它们.
解决方法:
对于PHP中的Base32,您可以在此处尝试我的实现:
https://github.com/ademarre/binary-to-text-php
从README文件中的Base32示例复制:
// RFC 4648 base32 alphabet; case-insensitive
$base32 = new Base2n(5, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567', FALSE, TRUE, TRUE);
$encoded = $base32->encode('encode this');
// MVXGG33EMUQHI2DJOM======
它并不慢,它可能会或可能不会比你的基准测试类快,但它不会像base64_encode()这样的内置PHP函数那么快.如果这对您非常重要,并且您并不真正关心Base32编码,那么您应该只使用十六进制.您可以使用本机PHP函数对十六进制进行编码,并且它不区分大小写.
$encoded = bin2hex('encode this'); // 656e636f64652074686973
$decoded = pack('H*', $encoded); // encode this
// Alternatively, as of PHP 5.4...
$decoded = hex2bin($encoded); // encode this
十六进制的缺点是与Base32相比,数据通胀率更高.十六进制使数据膨胀100%,而Base32将数据膨胀约60%.
标签:decoding,php,encoding,url,parameters 来源: https://codeday.me/bug/20191008/1875079.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。