首頁 >後端開發 >php教程 >玩虛擬網域◎+ ._PHP教學課程

玩虛擬網域◎+ ._PHP教學課程

WBOY
WBOY原創
2016-07-21 16:07:16781瀏覽

玩虛擬網域◎+ .

不知道大家最近上網是否發現一個新現象,就是有一些網站開始提供「username@server」的虛擬網域服務。由於“@”的魅力,大家紛紛申請,你或許會想:“如果我也能提供這種服務,該多好阿:)人氣肯定不錯!”本文將為大家揭開“@”的“神秘”面紗,讓大家都可以來「@」! (Do u @ today?)
別急,這個並不是電子郵件的地址,是一種虛擬域名,不相信的話可以在瀏覽器中訪問“bbs@zphp.com”。部分朋友應該使用過IE的FTP功能,就是在瀏覽器的網址列中鍵入「password:username@server」IE就會自動登陸FTP伺服器;而在Http1.1協定中,就規定了Http存取授權功能,形式同樣為“password:username@server”,其中“password:”可以省略,也是是訪問“bbs@zphp.com”實際上是以bbs的身份訪問“zphp.com”這個伺服器。
那我們只是需要將具體的URI傳送給PHP程序,在資料庫中搜尋出真實的URL重定向就可以了。
首先我們需要製作一個傳送URI的頁面(作為伺服器的預設文檔,一般命名為index.htm);在JS的Window物件中就可以實現這項功能,下面是index.htm的源代碼:
<script> <br>this.location = 'gotourl.php?url=' this.location.href; <br></script>
上面的程式碼會將瀏覽器重新導向到gotourl.php,並且透過QueryString給變數$url賦值為目前的URI。
成功將URI傳遞給PHP程式後,就可以進入資料庫尋找真實URL,下面是SQL資料庫相對應的table 的結構:
CREATE TABLE domain(
Id int(3) UNSIGNED DEFAULT '0 ' NOT NULL, # 網域ID
Domain char(20) NOT NULL, # 網域名稱
Gotourl char(255) NOT NULL, # 真實的URL
);
建立好了Table,就可以開始寫gotourl.php了,程式分為三個部分:

1、 分析URL:
$url = preg_replace(“/^http:\/\//I”, “”, $ url); // 將URL前面的“http://”去掉,不區分大小寫
$url = preg_replace(“/@. $/”, “”, $url); // 將“@”後面的部分去除
那麼,剩下的URL就只含有「username」的部分了。
為了給資料庫應用,需要對銘感的字元進行處理:
$url = addslashes($url);
2、 搜尋真實的URL:
這裡為了實現程式的通用性,使用了一個資料庫的操作類別(修改自PHPLib)來操作SQL資料庫:
$db = new dbSql(); // 連接資料庫
$queryString = sprinf(“SELECT gotourl FROM domain WHERE domain='%s ';”, $url); // 產生查詢字串
$gotourl = $db->result($queryString); // 查詢取得結果
3、重定向:
在PHP中重定向瀏覽器有許多方法,這裡使用比較簡單的HttpHeader來實作:
header(“location: $gotourl”);




其實像網易那樣子的「username.yeah.net」的虛擬網域服務和「@」的實作方法大同小異,但是「.」需要以價值200元的DNS泛解析為代價,而「@」所需要的僅僅是:
1、 PHP/SQL資料庫的權限;
2、真正DNS解析的網域。

如果需要在虛擬網域服務中加入廣告,例如網易的Popup窗口,可以將重定向部分改為:
<script> <br>window.open("url","nease" ,"width=windth,height=height"); <br></script>

為了對得起“天地良心”,筆者沒有將合併後完整的程序加上來(騙稿費?),如果大家比較懶,需要完整的程式碼(包括了添加等等),可以在http://zphp.com或http://bbs@zphp.com取得。希望大家都有一個好的訪客量。 

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/315226.htmlTechArticle玩虛擬網域◎+ . 不知道大家最近上網是否發現一個新現象,就是有一些網站開始提供“username@server”的虛擬網域服務。由於「@」的魅力...
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn