Skip to content

Instantly share code, notes, and snippets.

@Xeoncross Xeoncross/base58.php forked from jsjohnst/base58.php
Created Feb 25, 2014

Embed
What would you like to do?
<?php
class base58
{
static public $alphabet = "123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ";
public static function encode($int) {
$base58_string = "";
$base = strlen(self::$alphabet);
while($int >= $base) {
$div = floor($int / $base);
$mod = ($int - ($base * $div)); // php's % is broke with >32bit int on 32bit proc
$base58_string = self::$alphabet{$mod} . $base58_string;
$int = $div;
}
if($int) $base58_string = self::$alphabet{$int} . $base58_string;
return $base58_string;
}
public static function decode($base58) {
$int_val = 0;
for($i=strlen($base58)-1,$j=1,$base=strlen(self::$alphabet);$i>=0;$i--,$j*=$base) {
$int_val += $j * strpos(self::$alphabet, $base58{$i});
}
return $int_val;
}
}
<?php
include("base58.php");
echo "http://flic.kr/p/" . base58::encode(3392387861) . "\n";
// outputs: http://flic.kr/p/6aLSHT
echo "3392387861 = " . base58::decode(base58::encode(3392387861)) . "\n";
// outputs: 3392387861 = 3392387861
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.