Boa noite,
Na primeira versão do LURL (Tiny-URL), o usuário João, sugeriu que em vez de eu gerar um identificador aleatório, que poderia causar problemas quando o banco de dados se tornasse muito grande, eu poderia utilizar o campo ID, pois o mesmo é Auto Increment, e por isso ele se auto incrementa, não permitindo que existam dois campos com o mesmo identificador.
Já pensava em acatar a idéia do João a bastante tempo mas sempre estava com preguiça, até que alguns dias atrás uma amiga pediu ajuda para fazer um script para conversão de números entre bases. Após ajudar a mesma, ficou fácil. Só passar o código para PHP, modificar algumas funções antigas e pronto.
Foi necessário criar dois novos métodos importantes:
[code lang="php"]
function convertDecimalTo($decimal,$newBase,$str,$letters) {
if ($decimal >= $newBase) {
$x = $decimal % $newBase;
$y = $decimal / $newBase;
$str = $letters{$x} . $str;
if ($y < $newBase) {
$str = $letters{$y} . $str;
}
return convertDecimalTo($y,$newBase,$str,$letters);
} else {
if (strlen($str) == 0) {
$str = $letters{$decimal} . $str;
}
return $str;
}
}
function convertBaseToDecimal($value,$newBase,$letters) {
$sum = 0;
$len = strlen($value);
$end = $len-1;
for ($x=$end;$x>=0;$x--) {
$sum = $sum + strpos($letters,$value{$x}) * pow($newBase,($end - $x));
}
return $sum;
}
[/code]
As demais modificações você pode ver aqui:
LURL (Tiny-URL) com Identificador apartir do ID em PHP 4
Assim que for possível vou fazer as alterações na versão para PHP5 onde é utilizado classes.
Matheus Bratfisch
PS: Vou criar uma página para o LURL na sessão Code em breve.
LURL (Tiny-URL) com gráfico e estatísticas para PHP4
LURL (Tiny-URL) com gráfico e estatísticas para PHP5
Be First to Comment