zoukankan      html  css  js  c++  java
  • 生成短链接

    <?php
    namespace commonhelpers;
    
    /**
     * 字符串助手
     */
    class StringHelper extends yiihelpersStringHelper
    {
        /** 
         * 10进制转为62进制 
         *  
         * @param integer $n 10进制数值 
         * @return string 62进制 
         */  
        public static function dec62($n) {  
            $base = 62;  
            $index = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';  
            $ret = '';  
            for($t = floor(log10($n) / log10($base)); $t >= 0; $t --) {  
                $a = floor($n / pow($base, $t));  
                $ret .= substr($index, $a, 1);  
                $n -= $a * pow($base, $t);  
            }  
            return $ret;  
        }   
          
        /** 
         * 62进制转为10进制 
         * 
         * @param integer $n 62进制 
         * @return string 10进制 
         */  
        public static function dec10($s) {  
            $base = 60;  
            $index = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';  
            $ret = 0;  
            $len = strlen($s) - 1;  
            for($t = 0; $t <= $len; $t ++) {  
                $ret += strpos($index, substr($s, $t, 1)) * pow($base, $len - $t);  
            }  
            return $ret;  
        }
    
        /**
         * 短链接
         * @param  string $url 长链接(长字符串)
         * @return string      短链接
         */
        public static function urlShort($url)
        {
            $url= crc32($url); 
            $result= sprintf("%u", $url);
            return self::dec62($result);
        }
    }

    PS:原文链接忘记了,我自己整合到Yii中

  • 相关阅读:
    Vue 目录
    【SVN】彻底 svn 服务器上的 删除某一个文件或文件夹
    【Linux】安装 PostgreSQL
    【Linux】安装 node.js
    在vue中使用echarts图表
    Grunt搭建自动化web前端开发环境--完整流程
    JavaScript 开发规范
    React设计思想
    js闭包的理解
    pytharm安装第三方库
  • 原文地址:https://www.cnblogs.com/tujia/p/10535153.html
Copyright © 2011-2022 走看看