Revision: 58867
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at August 7, 2012 18:23 by kh411d
Initial Code
/** * CodeIgniter ShortURL Library * * Create and Translate ShortURL from integer ID * * @location Application/libraries * @package CodeIgniter * @author Khalid Adisendjaja < [email protected] > * @website http://khalidadisendjaja.web.id */ Class Shorturl { protected $codeset = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; protected $prefix; function __construct(){} public function setPrefix($p) { $this->prefix = $p; } public function createURL($base_url,$id) { return $base_url.$this->intToKeyword($id); } public function getURL($base_redirect_url,$keyword) { if($id = $this->keywordToInt($keyword)){ return $base_redirect_url.$id; }else{ return null; } } public function intToKeyword($url_id) { $base = strlen($this->codeset); $n = $url_id; $converted = ""; while ($n > 0) { $converted = substr($this->codeset, ($n % $base), 1) . $converted; $n = floor($n/$base); } return $this->prefix ? $this->prefix.$converted : $converted; } public function keywordToInt($keyword) { if($this->prefix){ if(preg_match('/^'.$this->prefix.'([0-9a-zA-Z]+)$/',$keyword,$matches)){ $keyword = $matches[1]; }else{ return null; } } $base = strlen($this->codeset); $converted = $keyword; $c = 0; for ($i = strlen($converted); $i; $i--) { $c += strpos($this->codeset, substr($converted, (-1 * ( $i - strlen($converted) )),1)) * pow($base,$i-1); } return $c; } }
Initial URL
Initial Description
Create short url easy by modifying integer to characters
Initial Title
shortURL for PHP
Initial Tags
Initial Language
PHP