PHP实现普通链接与迅雷、旋风、快车链接的相互转换
在我们从网络下载文件时,常见的下载链接类型无非就这几种:普通URL、迅雷链接(thunder开头)、快车链接(flashget开头)、QQ旋风(qqdl开头,现在QQ旋风已经不能用了),有时候我们会有在普通链接和这些专用链接之间转换的需求。
其实迅雷、快车、QQ旋风链接的转换算法都是通过Base64来的,区别在于在转换时在链接上加了一些特殊的标志。关于Base64,这里不再赘述,想要详细了解的请访问:Base64-维基百科 。
而PHP里提供很简便的Base64编码和解码,就两个函数搞定:base64_encode() 和 base64_decode() ,所这里简单分享下PHP实现普通链接与迅雷、旋风、快车链接的相互转换。
这里以网址:http://love.qingwei.tech/iloveu.mp3 为例
1、 迅雷链接
① 在网址前面加 'AA' ,后面加'ZZ',此时地址转换为:
AAhttp://love.qingwei.tech/iloveu.mp3ZZ
② 经过Base64编码后变成:
QUFodHRwOi8vbG92ZS5xaW5nd2VpLnRlY2gvaWxvdmV1Lm1wM1pa
④ 逆向转换就很简单了,就是去掉链接前面的thunder://,在将后面的base64字符串解码就行,详细请看代码。
网址与迅雷链接转换PHP代码 如下:
<?php function thunder($url, $isUrl=1){ if($isUrl){ //普通网址转迅雷网址 return 'thunder://'.base64_encode('AA'.$url.'ZZ'); }else{ //迅雷网址转普通网址 return substr(base64_decode(substr(trim($url),10)),2,-2); } } $url=thunder('http://love.qingwei.tech/iloveu.mp3'); echo $url; //将普通网址准换为迅雷网址 //thunder://QUFodHRwOi8vbG92ZS5xaW5nd2VpLnRlY2gvaWxvdmV1Lm1wM1pa $thunder=thunder('thunder://QUFodHRwOi8vbG92ZS5xaW5nd2VpLnRlY2gvaWxvdmV1Lm1wM1pa',0); echo $thunder; //将迅雷网址转换为普通网址 //http://love.qingwei.tech/iloveu.mp3
2、 快车链接
① 在网址前后都加上"[FLASHGET]",此时地址转换为:
[FLASHGET]http://love.qingwei.tech/iloveu.mp3[FLASHGET]
② 经过Base64编码后变成:
W0ZMQVNIR0VUXWh0dHA6Ly90b29sLmx1L3Rlc3QuemlwW0ZMQVNIR0VUXQ==
注意,这里可以选在在编码后的链接后面加上'&个人字符串',例如:&qingweitech ,这个字符串只起到标识作用,可以加可不加,加上以后是这样的:
W0ZMQVNIR0VUXWh0dHA6Ly90b29sLmx1L3Rlc3QuemlwW0ZMQVNIR0VUXQ==&qingweitech
这里如果加了这个字符串,我们在处理的时候会多加一个步骤
③ 在Base64编码后的地址前加flashget://:
④ 逆向转换就很简单了,就是去掉链接前面的flashget://,在将后面的base64字符串解码再去掉前后的[FLASHGET]就行,详细请看代码。
网址与快车链接转换PHP代码 如下:
<?php function flashget($url, $isUrl=1){ if($isUrl){ // 普通网址转快车链接 // return "Flashget://".base64_encode("[FLASHGET]".$url."[FLASHGET]")."&qingweitech"; // ."&qingweitech"是个人信息,可加可不加 return "flashget://".base64_encode("[FLASHGET]".$url."[FLASHGET]"); }else{ // 快车网址转普通网址 $url=explode('//',$url,2);//先把链接分为以 // 为分割的两部分 // $url=explode('&',$url[1],2);//如果链接加了个人信息就需要再以 & 为分割处理一次 return substr(base64_decode($url[1]), 10, -10);//Base64解码,去掉前后的[FLASHGET] // return substr(base64_decode($url[0]), 10, -10);//Base64解码,去掉前面后的[FLASHGET] } } $url=flashget('http://love.qingwei.tech/iloveu.mp3'); echo $url; //将普通网址转换为快车链接 //flashget://W0ZMQVNIR0VUXWh0dHA6Ly90b29sLmx1L3Rlc3QuemlwW0ZMQVNIR0VUXQ== $flashget=flashget('flashget://W0ZMQVNIR0VUXWh0dHA6Ly90b29sLmx1L3Rlc3QuemlwW0ZMQVNIR0VUXQ==',0); echo $flashget; //将快车链接转换为普通网址 //http://love.qingwei.tech/iloveu.mp3
3、 QQ旋风链接
注意:QQ旋风目前官网已经停止运营了,所以这里只做简单分享,实际没有什么用,而且旋风的转换相对简单。
① QQ旋风相对就简单多了,直接将原地址直接Base64编码,此时地址转换为:
aHR0cDovL2xvdmUucWluZ3dlaS50ZWNoL2lsb3ZldS5tcDM=
② 在Base64编码后的地址前加qqdl://:
④ 逆向转换就很简单了,就是去掉链接前面的fqqdl://,在将后面的base64字符串解码就行,详细请看代码。
网址与QQ旋风链接转换PHP代码 如下:
<?php function qqxf($url, $isUrl=1){ if($isUrl){ // 普通网址转QQ旋风 return "qqdl://".base64_encode($url); }else{ // QQ旋风转普通网址 $url=explode('//',$url,2);//先把链接分为以 // 为分割的两部分 return base64_decode($url[1]); } } $url=qqxf('http://love.qingwei.tech/iloveu.mp3'); echo $url; //将普通网址转换为QQ旋风链接 //qqdl://aHR0cDovL2xvdmUucWluZ3dlaS50ZWNoL2lsb3ZldS5tcDM= $qqxf=qqxf('qqdl://aHR0cDovL2xvdmUucWluZ3dlaS50ZWNoL2lsb3ZldS5tcDM=',0); echo $qqxf; //将QQ旋风链接转换为普通网址 //http://love.qingwei.tech/iloveu.mp3
知道以上原理和代码了,经过简单修改就可以做一个在线的链接转换器了,自己用或者小伙伴用都很方便~希望对你有所帮助。
喜欢这篇文章的话可以扫描下方二维码支持我~
文章来自清渭技术小站,转载请注明出处
版权声明:
作者:Kiwi
链接:https://www.qingwei.tech/programe-develops/979.html
来源:清渭技术小站
文章版权归作者所有,未经允许请勿转载。
Tinyfool
学习了
游客
原来如此