【发布时间】:2013-12-01 00:05:23
【问题描述】:
我有这个 PHP 代码,它应该在每个新条目上增加一个 URL 缩短掩码。 我的问题是它在碰到最后一个字符(z)时不会附加一个新字符。 (我知道递增是一个安全问题,因为您可以猜到前面的条目,但在这种情况下这不是问题)
如果我添加 00,它可以计算出 01 等等......但是有一个简单的解决方法可以解决为什么它不能自己做吗?
(参数是最后一个条目)
<?php
class shortener
{
public function ShortURL($str = null)
{
if (!is_null($str))
{
for($i = (strlen($str) - 1);$i >= 0;$i--)
{
if($str[$i] != 'Z')
{
$str[$i] = $this->_increase($str[$i]);
#var_dump($str[$i]);
break;
}
else
{
$str[$i] = '0';
if($i == 0)
{
$str = '0'.$str;
}
}
}
return $str;
}
else {
return '0';
}
}
private function _increase($letter)
{
//Lowercase: 97 - 122
//Uppercase: 65 - 90
// 0 - 9 : 48 - 57
$ord = ord($letter);
if($ord == 122)
{
$ord = 65;
}
elseif ($ord == 57)
{
$ord = 97;
}
else
{
$ord++;
}
return chr($ord);
}
}
?>
【问题讨论】:
标签: php