Out 19 2009

Nova versão do LURL (Tiny-URL).

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:

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;
}

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

No Comments

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment