刪除通訊協定和子域我有一個這樣的字符串:從URL
http://www.downlinegoldmine.com/viralmarketing
我需要的,如果它存在於從字符串中刪除http://www.
,以及http://
如果不包括WWW。
簡而言之,我只需要沒有任何協議的域名。
刪除通訊協定和子域我有一個這樣的字符串:從URL
http://www.downlinegoldmine.com/viralmarketing
我需要的,如果它存在於從字符串中刪除http://www.
,以及http://
如果不包括WWW。
簡而言之,我只需要沒有任何協議的域名。
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;
}
請舉例嗎? –
+1沒有立即達到正則表達式解決方案。 – 2012-08-08 20:35:57
$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
只需使用parse_url
(參見:http://php.net/manual/de/function.parse-url.php)。它也將採用不同的協議和路徑等
有可能是一個更好的辦法,但:
$url = preg_replace("#^(http://)?(www\\.)?#i", "", $url);
$url = strncmp('http://', $url, 7) ? $url : substr($url, 7);
$url = strncmp('www.', $url, 4) ? $url : substr($url, 4);
您可以使用以下方法來去除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
你需要的子文件即/病毒營銷? – amosrivera