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中

  • 相关阅读:
    SpringBoot配置默认日志logback
    SpringBoot静态资源映射、拦截器、过滤器使用
    windows系统安装两个Mysql服务
    SpringBoot使用Jsp开发Web项目
    SpringBoot使用Thymeleaf开发Web项目
    SpringBoot启动原理
    javascript Date
    UDP发送数据测试
    自动迁移
    EF 自测例子
  • 原文地址:https://www.cnblogs.com/tujia/p/10535153.html
Copyright © 2011-2022 走看看