php短网址生成算法


<?php
//短网址生成算法
class ShortUrl {
  //字符表
  public static $charset = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
  public static function encode($url)
  {
    $key = 'abc'; //加盐
    $urlhash = md5($key . $url);
    $len = strlen($urlhash);

    //将加密后的串分成4段,每段4字节,对每段进行计算,一共可以生成四组短连接
    for ($i = 0; $i < 4; $i++) {
      $urlhash_piece = substr($urlhash, $i * $len / 4, $len / 4);

      //将分段的位与0x3fffffff做位与,0x3fffffff表示二进制数的30个1,即30位以后的加密串都归零
      //此处需要用到hexdec()将16进制字符串转为10进制数值型,否则运算会不正常
      $hex = hexdec($urlhash_piece) & 0x3fffffff;

      //域名根据需求填写
      $short_url = "http://t.cn/";

      //生成6位短网址
      for ($j = 0; $j < 6; $j++) {

        //将得到的值与0x0000003d,3d为61,即charset的坐标最大值
        $short_url .= self::$charset[$hex & 0x0000003d];

        //循环完以后将hex右移5位
        $hex = $hex >> 5;
      }

      $short_url_list[] = $short_url;
    }

    return $short_url_list;
  }
}
/*
$url = "http://www.3100181.com/";
$short = ShortUrl::encode($url);
print_r($short);
*/

原文地址:https://www.cnblogs.com/lalalagq/p/10206033.html

时间: 2024-08-04 09:38:21

php短网址生成算法的相关文章

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

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

微博短网址生成算法原理

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

用PHP实现URL转换短网址的算法示例

短网址就是把一个长的地址转换在超级短的网址,然后访问短网址即可跳转到长网址了,下面来看用PHP实现URL转换短网址的算法与例子. 短网址(Short URL) ,顾名思义就是在形式上比较短的网址.在Web 2.0的今天,不得不说,这是一个潮流.目前已经有许多类似服务,借助短网址您可以用简短的网址替代原来冗长的网址,让使用者可以更容易的分享链接. 算法原理 1)将长网址md5生成32位签名串,分为4段, 每段8个字节;2)对这四段循环处理, 取8个字节, 将他看成16进制串与0x3fffffff(

2020最新新浪短网址生成API接口与在线网址缩短工具分享与介绍

新浪短链接已经广泛应用于各大平台营销之中.如:微信,短信,微博已经各论坛广告软文之中.因为其超短的t.cn的样式,更容易让人接收和保证的文案的美观性.但是自新浪停止了对外开放的api key之后,市面上还有哪些可以继续生成新浪短链接的api接口呢?别担心,今天给大家分享一款我自己一直在使用的新浪短链接在线批量网址缩短工具和api接口. 一,在线批量生成新浪短网址工具:     1,工具地址:http://qingmeidwz.cn 使用步骤:         1,进入新浪短网址批量生成工具网站(

最新官方新浪短网址生成API接口与在线短网址缩短工具分享

新浪短链接已经广泛应用于各大平台营销之中.如:微信,短信,微博已经各论坛广告软文之中.因为其超短的t.cn的样式,更容易让人接收和保证的文案的美观性.但是自新浪停止了对外开放的api key之后,市面上还有哪些可以继续生成新浪短链接的api接口呢?别担心,今天给大家分享一款我自己一直在使用的新浪短链接在线批量网址缩短工具和api接口. 一,在线批量生成新浪短网址工具: 1,工具地址:http://qingmeidwz.cn 使用步骤: 1,进入新浪短网址批量生成工具网站 http://qingm

超赞!最新短网址生成接口(新浪、腾讯官方api)

简要描述 短网址,顾名思义就是一种较短域名加动态参数组成的短地址,类似于t.cn/xxxx,url.cn/xxx.是由各大平台诸如新浪.腾讯.百度发布的短网址接口将长网址转换而来的. 应用场景 短网址的应用场景很广,譬如短信营销.邮件推广.微信营销.QQ营销.自媒体推广.渠道推广等,都会用到短网址.究其原因是在于短网址可以降低推广成本.用户记忆成本,提高用户点击率:在特定的场景下推广还能规避关键词,防止域名被拦截,隐藏真实地址等. 短网址生成接口 1.新浪短网址接口(最新官方api) http:

php 两种短网址生成方法

使用以下PHP代码可以生成唯一的6位的短网址. 代码如下: 1 <?php 2 3 4 //生成短网址方法1 5 function shortUrl1($url) 6 { 7 if (empty($url)) { 8 return FALSE; 9 } 10 $url = crc32($url); 11 $crc32 = sprintf("%u", $url); 12 $show = ''; 13 while ($crc32 > 0) { 14 $s = $crc32 %

短网址生成API接口【最新版】分析一下现在市面上的短网址情景

目前市面上主流短链接有百度.腾讯.淘宝和新浪,下面各自分析下他们的优缺点 百度短网址 百度短网址是收费项目,相对来说功能多一点,官方是这样介绍的:百度短网址服务可以帮助你把一个长网址缩短,方便你在社交网络和第三方平台上分享链接,投放广告等等. 百度具有超简单的方式使用短网址服务:访问百度短网址首页https://dwz.cn,生成对应的短网址.你还可以调用百度短网址服务API服务,查看数据统计与分析! 之前的百度短网址是需要大站才能申请,后来变成了都可以但需要2个小时的审核时间,现在是即时的 缺

微信(url.cn)短网址生成api接口以及php,python的调用方法

微信营销中,原链接太长总是很不方便分享,转化率极低.所以我们一般使用微信短链接即url.cn的短网址样式来缩短我们的链接,再发布到微信平台进行链接分享,今天给大家分享一个微信短链接生成接口,以及微信url.cn短网址的生成方式. 微信短链接生成api接口: http://qingmeidwz.cn/wxshorturl.php?url_long=http://www.baidu.com 使用说明: 将api接口地址中 "http://www.baidu.com" 换成需要缩短的网址,然