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 % 62;
15         if ($s > 35) {
16             $s = chr($s + 61);
17         } elseif ($s > 9 && $s <= 35) {
18             $s = chr($s + 55);
19         }
20         $show .= $s;
21         $x = floor($crc32 / 62);
22     }
23     return $show;
24 }
25
26 echo shorturl2(‘http://www.google.com/‘);
27 //4whP54
28
29 //生成短网址方法2
30 function shortUrl2($input)
31 {
32     $base32 = array(
33         ‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘, ‘g‘, ‘h‘,
34         ‘i‘, ‘j‘, ‘k‘, ‘l‘, ‘m‘, ‘n‘, ‘o‘, ‘p‘,
35         ‘q‘, ‘r‘, ‘s‘, ‘t‘, ‘u‘, ‘v‘, ‘w‘, ‘x‘,
36         ‘y‘, ‘z‘, ‘0‘, ‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘
37     );
38
39     $hex       = md5($input);
40     $hexLen    = strlen($hex);
41     $subHexLen = $hexLen / 8;
42     $output    = array();
43     for ($i = 0; $i < $subHexLen; $i++) {
44         // 把加密字符按照8位一组16进制与0x3FFFFFFF(30位1)进行位与运算
45         $subHex = substr($hex, $i * 8, 8);
46         $int    = 0x3FFFFFFF & (1 * (‘0x‘ . $subHex));
47         $out    = ‘‘;
48         for ($j = 0; $j < 6; $j++) {
49             // 把得到的值与0x0000001F进行位与运算,取得字符数组chars索引
50             $val = 0x0000001F & $int;
51             $out .= $base32[$val];
52             $int = $int >> 5;
53         }
54         $output[] = $out;
55     }
56     return $output;
57 }
58
59 $input = ‘http://www.google.com/‘;
60
61 $output = shorturl($input);
62 var_dump($output);

<?php

//生成短网址方法1
function shortUrl1($url)
{
if (empty($url)) {
return FALSE;
}
$url = crc32($url);
$crc32 = sprintf("%u", $url);
$show = ‘‘;
while ($crc32 > 0) {
$s = $crc32 % 62;
if ($s > 35) {
$s = chr($s + 61);
} elseif ($s > 9 && $s <= 35) {
$s = chr($s + 55);
}
$show .= $s;
$x = floor($crc32 / 62);
}
return $show;
}

echo shorturl2(‘http://www.google.com/‘);
//4whP54

//生成短网址方法2
function shortUrl2($input)
{
$base32 = 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‘
);

$hex = md5($input);
$hexLen = strlen($hex);
$subHexLen = $hexLen / 8;
$output = array();
for ($i = 0; $i < $subHexLen; $i++) {
// 把加密字符按照8位一组16进制与0x3FFFFFFF(30位1)进行位与运算
$subHex = substr($hex, $i * 8, 8);
$int = 0x3FFFFFFF & (1 * (‘0x‘ . $subHex));
$out = ‘‘;
for ($j = 0; $j < 6; $j++) {
// 把得到的值与0x0000001F进行位与运算,取得字符数组chars索引
$val = 0x0000001F & $int;
$out .= $base32[$val];
$int = $int >> 5;
}
$output[] = $out;
}
return $output;
}

$input = ‘http://www.google.com/‘;

$output = shorturl($input);
var_dump($output);

时间: 2024-10-25 21:07:26

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 短网址服务,可能很多朋友都已经不再陌生,现在大部分微博.手机邮件提醒等地方已经有很

Eclipse中SVN的安装步骤(两种)和使用方法

一.给Eclipse安装SVN,最常见的有两种方式:手动方式和使用安装向导方式.具体步骤如下: 方式一:手动安装 1.从官网下载site-1.6.9.zip文件,网址是:subclipse.tigris.org 2.从中解压出features与plugins文件夹,复制到E:/MyEclipse/myPlugin/svn里面,其它的*.xml文件不要. 3.在E:/MyEclipse/MyEclipse X.X/dropins下新建文件svn.link,内容是:path=E://MyEclips

两种SQL Server灾难恢复方法

两种SQL Server灾难恢复方法 如果您的mdf文件是当前数据库产生的,那么很侥幸,也许你使用sp_attach_db或者sp_attach_single_file_db可以恢复数据库,但是会出现类似下面的提示信息: 设备激活错误.物理文件名 'C:\Program Files\Microsoft SQL Server\MSSQL\data\test_Log.LDF' 可能有误. 已创建名为 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\

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:

数据归一化和两种常用的归一化方法

数据标准化(归一化)处理是数据挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性.原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价.以下是两种常用的归一化方法: 一.min-max标准化(Min-Max Normalization) 也称为离差标准化,是对原始数据的线性变换,使结果值映射到[0 - 1]之间.转换函数如下: 其中max为样本数据的最大

找1~100之间素数的两种比较简单的方法

方法一:利用一个布尔类型的值的判断,优点想法更直接易懂 public static void main(String[] args) { for(int i=2;i<=100;i++){ boolean b=true; for(int n=2;n<i;n++){ if(i%n==0){ b=false; break; } } if(b==true){ System.out.print(i+"\t"); } } } 方法二:能被2和这个数本身以外的数整除的都不是素数.理解难但