短网址

思路一:

<?php
function shorturl($url=‘‘) {
$base = array (
              "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" , "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");

$hex = md5($url);
$hexLen = strlen($hex);
$subHexLen = $hexLen / 8;
$output = array();

for ($i = 0; $i < $subHexLen; $i++) {
    $subHex = substr ($hex, $i * 8, 8);
    $int = 0x3FFFFFFF & (1 * (‘0x‘.$subHex));
    $out = ‘‘;
    for ($j = 0; $j < 6; $j++) {
        $val = 0x0000003D & $int;//因为6个字符的每个字符有26+26+10个组合
        $out .= $base[$val];
        $int = $int >> 5;//取$int30位长度,每次右移5位,正好可以得到6个组
    }
    $output[] = $out;
    }
    return $output;
}

$urls = shorturl(‘http://www.php100.com‘);
echo "<pre>";var_dump($urls);exit();
?>

思路二:

另一种是存数据库中,取自增ID,进行10=》62进制转换,结果为短网址,访问时再从数据库取得真实地址。

时间: 2024-12-20 10:11:24

短网址的相关文章

【转】Asp.net MVC定义短网址

在MVC的逻辑代码里,Controller和Action是必须的,但是在网址里,并不需要完全体现Controller和Action.比如我们经常希望看到http://localhost/About而不是http://localhost/Home/About. 默认的路由规则 新建MVC应用程序后,Global.asax里默认注册的路由规则是: ? public static void RegisterRoutes(RouteCollection routes)         {        

Python生成二维码和短网址

使用PyQt5. 方便电脑传输网址或者文字内容到手机上面,扫一下二维码就行了,短网址偶尔也能用上. 1 #!/usr/bin/env python3 2 from PyQt5.QtGui import QPixmap 3 from PyQt5 import QtWidgets 4 from PyQt5.QtCore import Qt 5 import requests 6 from os.path import expanduser 7 8 9 class Ui_qrDlg(): 10 11

Longurl:短网址在线解析工具

Longurl是一个很实用的短网址在线解析工具.支持 200 多种短链还原服务. 1.通过浏览器,访问网站:http://longurl.org/ 2.操作很简单,在框子中输入短网址,点击[Expand]即可. Longurl:短网址在线解析工具,布布扣,bubuko.com

长网址转换短网址

可以用955网址转换网站 以下是原理:http://blog.sina.com.cn/s/blog_65db99840100lg4n.html(转) ----------------“今天看到新闻说谷歌的网址缩短服务(http://goo.gl/)向公众开放了,就想看看这短地址是怎么一回事,因为玩新浪微博的时候也经常碰到这个东西. 用我的博客地址http://blog.sina.com.cn/bluemonster0808生成的短地址是goo.gl/HdAU(值得注意的是同一个长地址每次生成的短

短网址服务设计

短网址服务设计 背景 短网址服务,用来将输入的一个长网址转换为一个短网址(比如附录中的案例),当用户请求这个短网址时,服务查询出真实的url; 设计这么一个短网址服务,需要考虑哪些点? 数据结构 首先,需要考虑短网址应该如何存储,使用一个key-value结构就可以: key是生成的短网址,具有唯一性: value为原始真实网址: 算法 计算短网址的算法可以很简单,短网址与原始网址就只存在一个映射关系. 从1开始递增来映射每一个网址: 1个位上可以使用26位字母+10个数字,即36进制: 当然,

微博URL短网址生成算法原理及(java版、php版实现实例)

短网址(Short URL),顾名思义就是在形式上比较短的网址.通常用的是asp或者php转向,在Web 2.0的今天,不得不说,这是一个潮流.目前已经有许多类似服务,借助短网址您可以用简短的网址替代原来冗长的网址,让使用者可以更容易的分享链接. 例如:http://t.cn/SzjPjA 短网址服务,可能很多朋友都已经不再陌生,现在大部分微博.手机邮件提醒等地方已经有很多应用模式了,并占据了一定的市场.估计很多朋友现在也正在使用. 看过新浪的短连接服务,发现后面主要有6个字符串组成,于是第一个

php生成短网址的思路与方法(推荐)

生成短网址的思路以及使用php生成短网址的实现方法. 生成短网址的思路:如果把短网址还原了,你知道是个什么样子的吗?比如:http://www.jbxue.com/sitejs-17300-1.html对于以上这个链接,除了直接打开之外,还有一种方法打开它,如下:http://www. jbxue.com/link.php?url=http://www.jbxue.com/sitejs-17300-1.html好了,短网址还原了实际就是这个样子的了,可能你看到新浪微博应用里面的短网址都是这个样子

C#如何实现url短地址?C#短网址压缩算法与短网址原理入门

c# url短地址压缩算法与短网址原理的例子,详细介绍了短网址的映射算法,将长网址md5生成32位签名串,分为4段,每段8个字节,然后生成短网址,具体见文本实例. 短网址映射算法: 将长网址md5生成32位签名串,分为4段,每段8个字节:对这四段循环处理,取8个字节,将他看成16进制串与0x3fffffff(30位1)与操作,即超过30位的忽略处理:这30位分成6段,每5位的数字作为字母表的索引取得特定字符,依次进行获得6位字符串:总的md5串可以获得4个6位串:取里面的任意一个就可作为这个长u

微博短网址生成算法原理

短网址(Short URL),顾名思义就是在形式上比较短的网址.通常用的是asp或者php转向,在Web 2.0的今天,不得不说,这是一个潮流.目前已经有许多类似服务,借助短网址您可以用简短的网址替代原来冗长的网址,让使用者可以更容易的分享链接. 例如:http://980.so/3u0JzX 表示http://www.ganmall.com.cn/h/detail/dp_928.html?chl=dwz9801 短网址服务,可能很多朋友都已经不再陌生,现在大部分微博.手机邮件提醒等地方已经有很