文档章节

PHP 实现短url代码

刘德生
 刘德生
发布于 2014/06/02 17:14
字数 123
阅读 883
收藏 4

<?php


function shortUrl($url)

{

$md5_str = md5($url);

$md5_arr = str_split($md5_str,16);

$ret = array();

$seed_arr = array_merge(range('a','z'),range(0,9),range('A','Z'));

$seed_len = count($seed_arr);


foreach($md5_arr as $str){

 $bin = strTobin($str);

 $bin_len = strlen($bin);

 $avg_len = ceil($bin_len/6);

 $bin_arr = str_split($bin,$avg_len);

 $tmp_str = '';

 foreach($bin_arr as $bin){

 $index = bindec($bin)%$seed_len;

 $tmp_str .= $seed_arr[$index];

 }


 $ret[] = $tmp_str;


}


print_r($ret);


 }




function strTobin($str)

{

$bin = '';

for($i=0,$len=strlen($str);$i<$len;$i++){

     $bin .= str_pad(base_convert($str{$i}, 16, 2),4,'0', STR_PAD_LEFT);

     }


     return $bin;

}

$url = 'http://wenku.baidu.com/link?url=rvpWe98e3D2-W70FO6G_LB2WyElgeTNsGwKWSakl5MJu-EaVPd5r39l7-5ngTNdxi2Yp1FX6A4-neb-MNKCApJKwl9tVYkCN4lMpxuHBvdq';

shortUrl($url);


© 著作权归作者所有

共有 人打赏支持
刘德生
粉丝 6
博文 31
码字总数 7734
作品 0
海淀
高级程序员
微博URL短网址生成算法原理及(java版、php版实现实例)

短网址(Short URL),顾名思义就是在形式上比较短的网址。通常用的是asp或者php转向,在Web 2.0的今天,不得不说,这是一个潮流。目前已经有许多类似服务,借助短网址您可以用简短的网址替代...

小老傅
2014/08/20
0
5
URL短地址压缩算法 微博短地址原理解析 (Java实现)

最近,项目中需要用到短网址(ShortUrl)的算法,于是在网上搜索一番,发现有C#的算法,有.Net的算法,有PHP的算法,就是没有找到Java版的短网址(ShortUrl)的算法,很是郁闷。同时还发现有...

神勇小白鼠
2014/07/29
0
0
微博短链接解析ShortUrl【PHP代码实现】

一、背景简介 短网址应用已经在各大微博上开始流行了起来。例如QQ微博的url.cn,新浪的sinaurl.cn等。我们在QQ微博上发布网址的时候,微博会自动判别网址,并将其转换,例如:http://url.cn...

幸福的猫猫
2013/03/07
0
1
Rolling cURL: PHP并发最佳实践

在实际项目或者自己编写小工具(比如新闻聚合,商品价格监控,比价)的过程中, 通常需要从第3方网站或者API接口获取数据, 在需要处理1个URL队列时, 为了提高性能, 可以采用cURL提供的curlmulti*族...

鉴客
2012/06/19
4.2K
10
天心流水/Ourls

Ourls Ourls是一个基于发号和hashid的短网址服务,灵感来源于知乎上关于短址算法的一个讨论—— http://www.zhihu.com/question/29270034。 特征/Feature Ourls会根据sha1值来判断原url在数据...

天心流水
2015/09/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

MySQL 乱七八糟的可重复读隔离级别实现

MySQL 乱七八糟的可重复读隔离级别实现 摘要: 原文可阅读 http://www.iocoder.cn/Fight/MySQL-messy-implementation-of-repeatable-read-isolation-levels 「shimohq」欢迎转载,保留摘要,谢...

DemonsI
59分钟前
2
0
Spring源码阅读——2

在阅读源码之前,先了解下Spring的整体架构: 1、Spring的整体架构 1. Ioc(控制反转) Spring核心模块实现了Ioc的功能,它将类与类之间的依赖从代码中脱离出来,用配置的方式进行依赖关系描...

叶枫啦啦
今天
1
0
jQuery.post() 函数格式详解

jquery的Post方法$.post() $.post是jquery自带的一个方法,使用前需要引入jquery.js 语法:$.post(url,data,callback,type); url(必须):发送请求的地址,String类型 data(可选):发送给后台的...

森火
今天
0
0
referer是什么意思?

看看下面这个回答(打不开网页可以把网址复制到搜索栏): https://zhidao.baidu.com/question/577842068.html

杉下
今天
1
0
使用U盘安装CentOS-解决U盘找不到源

1. 使用UltraISO制作CentOS安装盘 如果需要安装带界面的系统,为保证安装顺利,可选择Everything版本的ISO制作安装盘。 2. 在BIOS中选择使用U盘安装 系统启动后,进入安装选择界面,其中有三...

Houor
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部