從URL

2011-07-12 44 views
1

刪除通訊協定和子域我有一個這樣的字符串:從URL

 
http://www.downlinegoldmine.com/viralmarketing 

我需要的,如果它存在於從字符串中刪除http://www.,以及http://如果不包括WWW。

簡而言之,我只需要沒有任何協議的域名。

+0

你需要的子文件即/病毒營銷? – amosrivera

回答

5

parse_url是完美的工具。你會首先調用它來分割url,然後檢查主機名部分,看看它是否以www.開頭,然後去掉它,然後組裝url。

更新:代碼

echo normalize_url('http://www.downlinegoldmine.com/viralmarketing'); 

function normalize_url($url) { 
    $parts = parse_url($url); 

    unset($parts['scheme']); 
    if (substr($parts['hostname'], 0, 4) == 'www.') { 
     $parts['hostname'] = substr($parts['hostname'], 4); 
    } 

    if (function_exists('http_build_url')) { 
     // This PECL extension makes life a lot easier 
     return http_build_url($parts); 
    } 

    // Otherwise it's the hard way 
    $result = null; 
    if (!empty($parts['username'])) { 
     $result .= $parts['username']; 
     if (!empty($parts['password'])) { 
      $result .= ':'.$parts['password']; 
     } 
     $result .= '@'; 
    } 

    $result .= $parts['host'].$parts['path']; 

    if (!empty($parts['query'])) { 
     $result .= '?'.$parts['query']; 
    } 

    if (!empty($parts['fragment'])) { 
     $result .= '#'.$parts['fragment']; 
    } 

    return $result;  
} 

See it in action

+0

請舉例嗎? –

+0

+1沒有立即達到正則表達式解決方案。 – 2012-08-08 20:35:57

0
$nvar = preg_replace("#http://(www\.)?#i", "", "http://www.downlinegoldmine.com/viralmarketing"); 

測試:

php> echo preg_replace("#http://(www\.)?#i", "", "http://www.downlinegoldmine.com/viralmarketing"); 
downlinegoldmine.com/viralmarketing 

php> echo preg_replace("#http://(www\.)?#i", "", "http://downlinegoldmine.com/viralmarketing"); 
downlinegoldmine.com/viralmarketing 
0

有可能是一個更好的辦法,但:

$url = preg_replace("#^(http://)?(www\\.)?#i", "", $url); 
0
$url = strncmp('http://', $url, 7) ? $url : substr($url, 7); 
$url = strncmp('www.', $url, 4) ? $url : substr($url, 4); 
0

您可以使用以下方法來去除https://開頭,HTTP://和www。從一個網址。

$url = 'http://www.downlinegoldmine.com/viralmarketing'; 
    echo preg_replace('/https?:\/\/|www./', '', $url); 

以上的回報downlinegoldmine.com/viralmarketing


,您可以使用以下方法來刪除的網址路徑,以及在https://開頭,HTTP://和www ..

$url = 'http://www.downlinegoldmine.com/viralmarketing'; 
    echo implode('/', array_slice(explode('/',preg_replace('/https?:\/\/|www./', '', $url)), 0, 1)); 

以上的回報downlinegoldmine.com