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中

  • 相关阅读:
    [js]vue-router的使用
    [js]递归实现 数组转树形
    [js]vue组件核心
    [js]了解chart绘图
    [js]vue权限控制
    [js]vue显示一个外部链接的组件
    [js]axios使用
    [js]vue中 给router-view 组件的 绑定 key 的原因
    [java]BeanPostProcessor使用及源码
    [java]权限管理
  • 原文地址:https://www.cnblogs.com/tujia/p/10535153.html
Copyright © 2011-2022 走看看