Seo tools

Neo Inspiration

  • Search

    • About Me

      • inspi 改め
        jakk@webアーキテクト(自称)
        php,javascript,seoなど
        得意技は extract();



  • Categories

  • Ranking

  • Comments

  • Others


  • 36進数

    36進数を新しいサービスで使おうと思って
    作ってたわけです。
    いや 思いついたら面白くなってしまったというオチなんですが。

    こんなかんじで。

    function decodeDec36($decimal='') {
        if (preg_match('/^[0-9a-z]+$/’,$decimal)) {
            $stack = array(’0′,’1′,’2′,’3′,’4′,’5′,’6′,’7′,’8′,’9′,’a',’b',’c',’d',’e',’f',’g',’h',’i',’j',’k',’l',’m',’n',’o',’p',’q',’r',’s’,'t’,'u’,'v’,'w’,'x’,'y’,'z’);
    
            $dec35 = 0;
            $len = strlen($decimal);
            for ($i=1; $i<=$len; $i++) {
                $tmpDec = array_search(substr($decimal,-$i,1),$stack,true);
                $dec35 += (int) $tmpDec * pow(36,$i - 1);
            }
            return $dec35;
        } else {
            return false;
        }
    }
    
    function encodeDec36($number='') {
        if (is_numeric($number)) {
            $stack = array('0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
    
            $enc35 = '';
            $tempEnc = array();
            while (($floor = floor((int) $number / 36)) != 0) {
                $tempEnc[] = $number % 36;
                $number = $floor;
            }
            $tempEnc[] = $number;
    
            $tempEnc = array_reverse($tempEnc);
            foreach ($tempEnc as $k=>$v) {
                $enc35 .= $stack[$v];
            }
            return $enc35;
        } else {
            return false;
        }
    }
    

    反省はしてない。

    と勢いで作っていたらふと javascript の toString(36) を思い出した。

    あれってPHPでねえのとおもったらあった・・・

    $encoded = base_convert($number,10,36); //10進数の$numberを36進数に変換

    無知って罪だ。
    やっぱり反省します。


    Leave a Reply

    2008/11/22 01:24:09