大佬教程收集整理的这篇文章主要介绍了php – 像base36一样编码,包括大写,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
谢谢,
马克斯
> Create short IDs with PHP – Like Youtube or TinyURL
> Building a URL Shortener
以下是第二篇文章(引用)中使用的代码部分:
$codeset = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRstuVWXYZ"; $base = strlen($codeset); $n = 300; $converted = ""; while ($n > 0) { $converted = substr($codeset,($n % $basE),1) . $converted; $n = floor($n/$basE); } echo $converted; // 4Q
你可以很容易地将它封装在一个函数中 – 唯一需要考虑的是$n将作为参数接收:
function shorten($n) { $codeset = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRstuVWXYZ"; $base = strlen($codeset); $converted = ""; while ($n > 0) { $converted = substr($codeset,1) . $converted; $n = floor($n/$basE); } return $converted; }
并以这种方式调用它:
$id = 123456; $url = shorten($id); var_dump($url);
你得到 :
String 'w7e' (length=3)
(如果需要,您还可以添加一些其他字符 – 具体取决于您希望在URL中获得的内容)
评论后编辑:
通过阅读第二篇文章(我从中获得了缩短代码),您将找到执行非缩短的代码.
将该代码封装在函数中不应该那么难,并且可能会得到这样的结果:
function unshorten($converted) { $codeset = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRstuVWXYZ"; $base = strlen($codeset); $c = 0; for ($i = strlen($converted); $i; $i--) { $c += strpos($codeset,substr($converted,(-1 * ( $i - strlen($converted) )),1)) * pow($base,$i-1); } return $c; }
并用缩短的url调用它:
$BACk_to_id = unshorten('w7e'); var_dump($BACk_to_id);
会得到你:
int 123456
以上是大佬教程为你收集整理的php – 像base36一样编码,包括大写全部内容,希望文章能够帮你解决php – 像base36一样编码,包括大写所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。