PS:原创文章,如需转载,请注明出处,谢谢!
本文地址:http://flyer0126.iteye.com/blog/1591848
短链接,通俗来说,就是将长的URL
网址,通过程序计算等方式,转换为简短的网址字符串。
这样的话其好处为:1、内容需要;2、用户友好;3、便于管理。
早期短链接广泛应用于图片上传网站,通过缩短网址URL链接字数,达到减少代码字符串的目的。更便于使用者引用网址,写入代码中,“节省”字符数空间。常见于网店图片分类的使用,因有字符限制,运用短链接,达到外链图片的目的。自微博盛行以来,在微博字数有限的特色下,短链接也盛行于微博网站,以节省字数,给博主发布更多文字的空间。
<?php
/**
* 由长连接生成短链接操作
*
* 算法描述:使用6个字符来表示短链接,我们使用ASCII字符中的'a'-'z','0'-'9','A'-'Z',共计62个字符做为集合。
* 每个字符有62种状态,六个字符就可以表示62^6(56800235584),那么如何得到这六个字符,
* 具体描述如下:
* 1. 对传入的长URL+设置key值 进行Md5,得到一个32位的字符串(32 字符十六进制数),即16的32次方;
* 2. 将这32位分成四份,每一份8个字符,将其视作16进制串与0x3fffffff(30位1)与操作, 即超过30位的忽略处理;
* 3. 这30位分成6段, 每5个一组,算出其整数值,然后映射到我们准备的62个字符中, 依次进行获得一个6位的短链接地址。
*
* @author flyer0126
* @since 2012/07/13
*/
function shortUrl( $long_url )
{
$key = 'flyer0126';
$base32 = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
// 利用md5算法方式生成hash值
$hex = hash('md5', $long_url.$key);
$hexLen = strlen($hex);
$subHexLen = $hexLen / 8;
$output = array();
for( $i = 0; $i < $subHexLen; $i++ )
{
// 将这32位分成四份,每一份8个字符,将其视作16进制串与0x3fffffff(30位1)与操作
$subHex = substr($hex, $i*8, 8);
$idx = 0x3FFFFFFF & (1 * ('0x' . $subHex));
// 这30位分成6段, 每5个一组,算出其整数值,然后映射到我们准备的62个字符
$out = '';
for( $j = 0; $j < 6; $j++ )
{
$val = 0x0000003D & $idx;
$out .= $base32[$val];
$idx = $idx >> 5;
}
$output[$i] = $out;
}
return $output;
}
$url = 'http://flyer0126.iteye.com/';
$ret = shortUrl($url);
var_dump($ret);
################ 打印结果 ################
/* array(4) {
[0]=>
string(6) "2aEzqe"
[1]=>
string(6) "Rj6Bve"
[2]=>
string(6) "f2mQvi"
[3]=>
string(6) "z2eqYv"
} */
#将url与短链接结果存入数据库,取其中一个用于显示即可。 例:新浪微博:http://t.vn/2aEzqe
分享到:
相关推荐
短网址生成系统,顾名思义,是一种能够将长URL转化为短链接的服务。它主要通过哈希算法或自增ID结合编码方式来实现。在这个系统中,我们使用的编程语言是PHP,这是一种广泛应用的开源脚本语言,特别适合于Web开发。 ...
黑色简洁的PHP短网址短链接生成源码 可在后台添加广告 前端: 简洁、优雅、反应灵敏的设计 创建URL、创建自定义URL、密码保护的链接、链接统计、暗色主题、小书签、复制和共享链接 后端: 删除网址、编辑网站设置...
综上所述,这个"在线生成防红短链接PHP源码"涉及到多个IT知识点,包括PHP编程、URL重写、数据库操作、安全防护以及网站部署和优化。对于想要学习或实践Web开发的人来说,这是一个有价值的项目。
缩短链接服务则是将长URL转化为短链接的服务,通常用于社交媒体分享、邮件营销等领域,因为长链接可能会导致排版问题或者看起来不专业。PHP可以轻松实现这个功能,通过创建一个映射系统,将长链接与短码关联起来,当...
短地址生成涉及到的技术包括URL编码、哈希算法、数据库操作以及用户界面设计。在实际应用中,通常会用到如Base62编码来将数字和字母组合成短链接,以及哈希函数(如MD5或SHA系列)来确保长网址与短网址之间的唯一...
在`word.php`文件中,很可能包含了类似这样的代码,展示了如何实际操作并生成Word文件。而`test.php`可能是一个测试脚本,用于调用和展示`word.php`的功能。 除了PHPWord,还有Spout库,它更适合处理大型文件,因为...
综上所述,基于PHP的微信域名防封短网址程序是一个综合了URL处理、网络通信、数据库操作和安全防护的综合性项目。通过巧妙的设计和实现,它能够在微信环境中提供稳定、安全的短链服务,有效规避微信的封禁风险,助力...
长链接可以生成短链接,短链接来源于长链接。 什么是长链接、短链接 顾名思义,长链接就是一个很长的链接;短链接就是一个很短的链接。长链接可以生成短链接,短链接来源于长链接。 为什么要使用长链接、短链接 更加...
1. **短网址生成算法**:系统可能采用了某种哈希或编码算法,如Base62或URL-safe Base64,将原始的长网址转换为简短的、可读性强的短网址,同时确保每个长网址对应唯一的短网址。 2. **用户注册与域名绑定**:注册...
PHP通过PDO(PHP Data Objects)或MySQLi扩展来连接和操作数据库,如保存长URL、查找对应的短URL等。 4. **路由与重定向**:当用户访问短链接时,服务器需要解析这个短码并将其重定向到原始的长URL。这涉及到HTTP...
通过`index.php`,用户可以输入长链接生成短链接,后台使用PHP处理请求,存储长链接到数据库,并返回对应的短链接。短链接被点击后,系统通过查询数据库找到原URL并重定向用户。 此外,系统可能还包括用户注册、...
在短网址程序中,PHP主要负责后台逻辑处理,包括接收原始长网址,生成短链接,以及解析短链接回原始长网址。 1. **URL编码与解码**:在处理URL时,PHP提供了`urlencode()`和`urldecode()`函数,用于对URL进行编码和...
短网址服务可以帮助你把一个长网址缩短,方便你在社交网络和微博上分享链接。 安装程序后输入你要缩短的原网址,生成对应的短网址。你还可以自定义你想要的短网址字符 。 程序功能:根据长网址生成短百度网址;也...
因此,将长链接转换为短链接的需求应运而生。百度提供的短链服务API允许开发者通过简单的接口调用将长链接转换成更简短的形式,便于分享和传播。 #### 二、核心功能实现 ##### 1. 关键概念 - **长链接**:原始的、...
使用方法: 修改config.php文件 访问:域名/install.php即可 查看用户使用记录:域名/admin.php 密码默认是123456,是在你设置config.php时填写的 原项目地址https://gitee.com/jsy-1/short-url
【描述】"基于PHP的短链接系统源码.zip" 暗示了这个项目是一个用PHP实现的开源解决方案,可能包含了数据库交互、URL编码与解码、自定义短码生成、统计分析等功能。用户下载此压缩包后,可以研究源代码,学习PHP编程...
短网址服务可以帮助你把一个长网址缩短,方便你在社交网络和微博上分享链接。 安装程序后输入你要缩短的原网址,生成对应的短网址。你还可以自定义你想要的短网址字符 。 程序功能:根据长网址生成短百度网址;也...
4. **数据库交互**:用于存储原始长URL和对应的短链接,可能有数据库连接和查询脚本。 5. **URL重定向**:当用户访问短链接时,系统会根据数据库中的映射关系重定向到原始长URL。 6. **配置文件**:如config.php,...
在这个项目中,PHP是实现短网址服务的主要后端语言,负责处理请求、查询数据库和生成短网址。 MySQL是关系型数据库管理系统,用于存储和管理短网址与其对应的原始长网址。在这个系统中,它可能包含两个主要的表格:...