2012-08-23 51 views
-1

如何將給定的網址轉換爲基本網址? 這意味着如果我有「http://test.com/folder/it.html?gsa=5」,腳本應該返回「http://test.com/folder/」。將給定的網址轉換爲基本網址

我想:

preg_match('~.*/~', $cur_url, $match); 
$base=($match[0]=='http://') ? $cur_url : $match; 

不工作好。

+1

實際上,基本URL是'http:// test.com /'。無論如何,[你有什麼嘗試](http://www.whathaveyoutried.com)? – Matt

+0

你想從最後/字符去掉? SUBSTR? – mlemay

+0

我試過這段代碼,但它似乎沒有正確工作。 preg_match('〜。* /〜',$ cur_url,$ match); $ base =($ match [0] =='http://')? $ cur_url:$ match; @Matt,不,基地址是帶有路徑的網址,但文件,查詢和片段已被刪除。 – barakuda28

回答

0

使用一個正則表達式字符串,它保留.com轉發的所有內容。只需設置它就可以使用任何可能的網站結尾。將很快用樣本字符串更新。

- 編輯 -

這個PHP正則表達式的字符串工作從任何網址,以獲取基址(IVE測試)。

![a-zA-Z]+(.com/|.ca/|.gov/)! 

注:此字符串設定爲只與.COM,.CA和.gov領域的工作,但你可以在括號他們分開添加其他|。

- 編輯 -

重讀你的帖子,我已經設計了另一個字符串,如果你想在URL一切,除了在最後的文件。

!([a-zA-Z]*+(.com/|.ca/|.gov/))+([a-zA-Z/]*[/])! 

注:如果您使用與不具有對最終文件的URL,該目錄必須有斜槓靜止或最後的目錄將被削減爲好。

2

嘗試parse_url

從php.net樣品

<?php $url = 'http://username:[email protected]/path?arg=value#anchor'; 

print_r(parse_url($url)); 

echo parse_url($url, PHP_URL_PATH); ?> 

回報

Array 
(
    [scheme] => http 
    [host] => hostname 
    [user] => username 
    [pass] => password 
    [path] => /path 
    [query] => arg=value 
    [fragment] => anchor 
) 
/path 
+0

PATH也保存文件在最後。我必須被刪除。另外我需要生成一個基礎url,而不僅僅是路徑。 – barakuda28

+0

這是重新組裝基本URL的很多工作。問題看起來像OP想修剪'it.html',並保留資源定位器的基礎「路徑」。 – mario

+0

@mario據我所知,他要求返回'http:// test.com/folder /' –

0

那麼,如果你想從URL

?hello=somethin&something=somethingelse

刪除$ _GET瓦爾10

的以下可能的工作:

$fullurl = $_SERVER['REQUEST_URI']; 
$urlarray = explode($fullurl, "?"); 
$urlnoget = $urlarray[0]; 

是會爆炸的URL到每一個位?沒有?在一個實際的文件/ fooledr名稱,所以它會清除$ _GET的網址。

您是否考慮過使用JavaScript?

對不起,如果有更簡單的方法,但這是我所知道的。

+0

'explode()'是一個過度使用的解決方法。使用'strtok()'。 – mario

+0

我從來沒有聽說過這樣的功能,以及我在這裏相當新。 PS:如果我的帖子有用,請+1 – user115422