在php中要生成迅雷、快車、QQ旋風(fēng)下載鏈接我們會使用到的加密方式有base64_encode與base64_decode來生成,下面看兩個例子,希望對你會帶來幫助.
在一些資源下載共享站點中,我們經(jīng)常遇到需要在下載頁中添加各種下載工具鏈接的情況,傳統(tǒng)的利用各下載工具官方提供的腳本(.js)生成鏈接的方式,其弊端已日漸突出,如加載速度慢、客戶端兼容性問題等.
本文將介紹如何通過 PHP 函數(shù)處理,輕松生成制作各種第三方下載工具的鏈接數(shù)據(jù),并直接輸出到前臺上.
該功能所用到的 PHP 函數(shù):
1. base64_encode:用于以 base64 方式加密字符串.
2. base64_decode:用于解密以 base64 方式加密的字符串.
例子1,以原始下載地址生成第三方工具下載鏈接 PHP 代碼:
- $url = 'http://www.example.com/document.zip';
- // 可從以下代碼推知各種第三方工具下載鏈接的精確構(gòu)成
- $url_thunder = 'thunder://' . base64_encode ( 'AA' . $url . 'ZZ' );
- $url_flashget = 'flashget://' . base64_encode ( '[FLASHGET]' . $url . '[FLASHGET]' );
- $url_qqdl = 'qqdl://' . base64_encode ( $url );
從第三方工具下載鏈接還原成原始鏈接 PHP 代碼:
- $url_old = '';
- // 將字符串以 // 為界限分開
- $temp = explode ( '//' , $url_old, 2 );
- // 判斷 // 前的字符(已轉(zhuǎn)換為小寫)
- switch ( strtolower( $temp[0] ) ) {
- case 'thunder:':
- $url_new = substr ( base64_decode ( $temp[1] ), 2, -2 );
- break;
- case 'flashget:':
- $url_new = substr ( base64_decode ( $temp[1] ), 10, -10 );
- break;
- case 'qqdl:':
- $url_new = base64_decode ( $temp[1] );
- break;
- }
例子2,代碼如下:
- <?php
- function zhuanhuan() {
- $urlodd=explode('//',$_GET["url"],2);//把鏈接分成2段,//前面是第一段,后面的是第二段
- $head=strtolower($urlodd[0]);//PHP對大小寫敏感,先統(tǒng)一轉(zhuǎn)換成小寫,不然 出現(xiàn)HtTp:或者ThUNDER:這種怪異的寫法不好處理
- $behind=$urlodd[1];
- if($head=="thunder:"){
- $url=substr(base64_decode($behind), 2, -2);//base64解密,去掉前面的AA和后面ZZ
- }elseif($head=="flashget:"){
- $url1=explode('&',$behind,2);
- $url=substr(base64_decode($url1[0]), 10, -10);//base64解密,去掉前面后的[FLASHGET]
- }elseif($head=="qqdl:"){
- $url=base64_decode($behind);//base64解密
- }elseif($head=="http:"||$head=="ftp:"||$head=="mms:"||$head=="rtsp:"||$head=="https:"){
- $url=$_GET["url"];//常規(guī)地址僅支持http,https,ftp,mms,rtsp傳輸協(xié)議,其他地貌似很少,像XX網(wǎng)盤實際上也是基于base64,但是有的解密了也下載不了
- }else{
- echo "本頁面暫時不支持此協(xié)議";
- }
- return $url;
- }
- if($_GET["url"]!=NULL){
- $url=zhuanhuan($_GET["url"]);
- $url_thunder="thunder://".base64_encode("AA".$url."ZZ");//base64加密,下面的2也一樣
- $url_flashget="Flashget://".base64_encode("[FLASHGET]".$url."[FLASHGET]")."&aiyh";
- $url_qqdl="qqdl://".base64_encode($url);
- } //開源代碼Vevb.com
- ?>
- <form action=cs.php method=GET>
- 請輸入普通鏈接或者迅雷,快車,旋風(fēng)鏈地址:
- <input type=text name="url" size="80">
- <input type=submit value="轉(zhuǎn)換">
- </form>
- <p>實際地址:<a href="<?php echo $url;?>" target="_blank"><?php echo $url;?></a>
- <p>迅雷鏈:<a href="<?php echo $url_thunder;?>" target="_blank"><?php echo $url_thunder;?></a>
- <p>快車鏈:<a href="<?php echo $url_flashget;?>" target="_blank"><?php echo $url_flashget;?></a>
- <p>旋風(fēng)鏈:<a href="<?php echo $url_qqdl;?>" target="_blank"><?php echo $url_qqdl;?></a>
新聞熱點
疑難解答