2015-12-05 74 views
1

網址:http://www2.zippyshare.com/v/hlA8HjA9/file.htmlPHP:如何讓子域:WWW2或www35

我只是創建一個數據庫,我知道如何/ V後得到的文件名/但現在我需要另一個字符串添加到我的數據庫。這是一臺服務器。 他們有子域中的服務器和每個文件是不同的服務器,例如www3.zippyshare或www73.zippyshare.com

現在我有這樣的事情上:

$myLink = $_POST['url']; 
    $var_url = parse_url($myLink); 
    $var_parts = explode('.', $var_url['host']); 
    $var = var_parts[0]; 

但鏈接保存「v」到我的數據庫..

我不知道如何獲得子域,然後跳過www,所以我只會將數字添加到我的數據庫。

我不確定我是否寫得夠清楚,但如果有人能幫助我,我會非常開心。

+0

聽起來像是你需要一個統一的方式來存儲你的資源的位置。我建議設計一個「統一資源定位器」語法,然後將這個創新的新「URL」存儲在您的數據庫中。 – Sammitch

回答

0

我會用這個正則表達式:

/^(?:https?:\/\/)?([\da-z-]+)\.[a-z]+\.[a-z\.]{2,6}\/v\/[a-z0-9].+\/([a-z0-9]+\.[a-z]+)$/ 

做到這一點在PHP這樣的:

$url = "http://www2.zippyshare.com/v/hlA8HjA9/file.html"; 
$pattern = "/^(?:https?:\/\/)www([\d0-9-]+)\.[a-z]+\.[a-z\.]{2,6}\/v\/([a-z0-9\/\.].+)$/"; 
preg_match($pattern, $url, $matches); 

list(, $server, $file) = $matches; 

的服務器將在$server,文件名會在$file

證明:https://3v4l.org/hHWRm

+0

嗨jankal,謝謝你的幫助。 有一個問題,因爲它返回www2。我想獲得www後的數字。 我需要這個來替換原來的腳本,它只需要例如數字。 2或72它可能是任何,取決於網址 – 4XM7

+0

@ 4XM7爲你工作嗎? – jankal

+0

@ 4XM7我剛編輯它只返回服務器號碼;) – jankal