首页 > 编程 > PHP > 正文

php生成短连接的方法

2020-03-22 19:21:54
字体:
来源:转载
供稿:网友
这篇文章主要介绍了关于php生成短连接的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

自己没事研究研究 PHP生成短连接 好多人都花钱买新浪的接口来生成短连接,我自己就写了一个 当然核心代码还是借助网络,我只是负责整合了一下而已。

我是在我本地测试的,接下来详细说下。

我做的是把域名信息都存在数据库里面,数据库表是这样的

1.创建个数据库表

CREATE TABLE `links` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `url` varchar(255) DEFAULT NULL, `ctime` int(11) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM AUTO_INCREMENT=111 DEFAULT CHARSET=UTF8;

2.配置本地域名

我用的是phpstudy,你用wamp,或者 xampp都一样,根据我的phpstudy来就行

我phpstudy一个右键就可以设置了,如下图(右键-站点域名管理)

箭头几个位置是要注意的,自己设置域名 然后选择你写的代码的位置,端口你看着定,写完了 点新增,右侧就出现你设置的了。

肯定有一些用xammp或者用 wamp的朋友这个时候懵逼了,怎么办 ,我想办法装一个xampp,给你们截代码吧,

 VirtualHost *:80  DocumentRoot E:/project/short  ServerName d.cn Directory E:/project/short  DirectoryIndex index.html index.php  AllowOverride All Order deny,allow Allow from all /Directory  /VirtualHost 
Allow from all /Directory /VirtualHost

这代代码 写在哪个文件呢,写在xampp/apache/conf/extra/httpd-vhosts.conf 你的xampp装哪个盘就去哪个盘找了,还有 DocumentRoot也要写你的对应的位置哦

3.改域名配置文件

位置在
C:/Windows/System32/drivers/etc/hosts

我写的是这样的

4.配置伪静态文件

在项目的根目录下创建一个.htaccess文件,里面代码是

 IfModule mod_rewrite.c RewriteEngine onRewriteRule ^(/S{1,7})$ index.php?code=$1 [L] /IfModule 

5.写系统公共函数

func.php

 ?phpfunction b64dec($b64) { //64进制转换成10进制 $map = array( 0 = 0, 1 = 1, 2 = 2, 3 = 3, 4 = 4, 5 = 5, 6 = 6, 7 = 7, 8 = 8, 9 = 9, A = 10, B = 11, C = 12, D = 13, E = 14, F = 15, G = 16, H = 17, I = 18, J = 19, K = 20, L = 21, M = 22, N = 23, O = 24, P = 25, Q = 26, R = 27, S = 28, T = 29, U = 30, V = 31, W = 32, X = 33, Y = 34, Z = 35, a = 36, b = 37, c = 38, d = 39, e = 40, f = 41, g = 42, h = 43, i = 44, j = 45, k = 46, l = 47, m = 48, n = 49, o = 50, p = 51, q = 52, r = 53, s = 54, t = 55, u = 56, v = 57, w = 58, x = 59, y = 60, z = 61, _ = 62, = = 63 ); $dec = 0; $len = strlen($b64); for ($i = 0; $i $len; $i++) { $b = $map[$b64{$i}]; if ($b === NULL) { return FALSE; } $j = $len - $i - 1; $dec += ($j == 0 ? $b : (2 (6 * $j - 1)) * $b); } return $dec;}function decb64($dec) { //10进制转换成64进制 if ($dec 0) { return FALSE; } $map = array( 0= 0 ,1= 1 ,2= 2 ,3= 3 ,4= 4 ,5= 5 ,6= 6 ,7= 7 ,8= 8 ,9= 9 , 10= A ,11= B ,12= C ,13= D ,14= E ,15= F ,16= G ,17= H ,18= I ,19= J , 20= K ,21= L ,22= M ,23= N ,24= O ,25= P ,26= Q ,27= R ,28= S ,29= T , 30= U ,31= V ,32= W ,33= X ,34= Y ,35= Z ,36= a ,37= b ,38= c ,39= d , 40= e ,41= f ,42= g ,43= h ,44= i ,45= j ,46= k ,47= l ,48= m ,49= n , 50= o ,51= p ,52= q ,53= r ,54= s ,55= t ,56= u ,57= v ,58= w ,59= x , 60= y ,61= z ,62= _ ,63= = , ); $b64 = do { $b64 = $map[($dec % 64)] . $b64; $dec /= 64; } while ($dec = 1); return $b64;}

6.写核心方法

创建index.php

 ?phpinclude func.php define( HOST , localhost define( DB_NAME , test define( USER , root define( PASS , root function make_short_url($url){ $url=str_ireplace( http:// , ,$url); $pdo = new PDO( mysql:host= .HOST. dbname= .DB_NAME,USER,PASS);  $rs = $pdo - query( select id from links where url= .$url.  $row = $rs - fetch();  if($row==false){  $pdo - exec( insert into links(url,ctime) values( .$url. , .mktime(). )  $id=$pdo - lastinsertid();  return http://d.cn/ .decb64($id); }else{ return http://d.cn/ .decb64($row[ id function get_long_url($code){ $pdo = new PDO( mysql:host= .HOST. dbname= .DB_NAME,USER,PASS);  $rs = $pdo - query( select url from links where id= .b64dec($code).  $row = $rs - fetch();  if($row==false){ print 链接错误 exit; }else{ return http:// .$row[ url }//参数的接收与短链接返回部分if($_GET[ code ]){ $code=trim($_GET[ code ], / $url=get_long_url($code); if($url){ header( location:$url }elseif($_GET[ url ]){ $url=trim($_GET[ url print make_short_url($url);}

最后浏览器测试下

把生成的地址 粘贴到浏览器地址栏一访问就跳转到 www.cctv.com了

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP !

相关推荐:

PHP根据秒PHP持续时长的方法

php生成xml数据的方法

以上就是php生成短连接的方法的详细内容,PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表