我使用PHP。
我的网址看起来像这样
http://www.mydomain.com/mydir/mydir2/?something=hello
我想要这个:
我是这样做的,但感觉这是错误的做法
长而丑。
$url = 'http://www.mydomain.com/mydir/mydir2/?something=hello';
$root_url_a = explode('/', $url);
$root_url = $root_url_a[0] . '//' . $root_url_a[2];
$root_url_clean = $root_url_a[2];
建议
最短的最正确的方式将得到我的投票。
答案 0 :(得分:3)
好的,这是一个例子:
$url = parse_url('http://www.mydomain.com/mydir/mydir2/?something=hello');
echo $url->scheme.'://'.$url->host;
沿着正确的路线。
虽然从技术上来说这甚至都不对,因为取决于你是否发送了一个方案而不是网址parse_url
实际上可以改变它分配变量的方式,所以我写道:
function return_url($url){
$parsed_url = parse_url($url);
if(!$parsed_url){
return false;
}
if(isset($parsed_url['scheme'])){
if(!isset($parsed_url['host'])){
return false;
}else{
return $parsed_url['scheme'].'://'.$parsed_url['host'];
}
}
if(isset($parsed_url['path'])){
return 'http://'.$parsed_url['path'];
}
return false;
}
答案 1 :(得分:2)
我会这样做:
$url = "http://www.mydomain.com/mydir/mydir2/?something=hello";
echo parse_url($url, PHP_URL_HOST);
// Would echo:
http://www.mydomain.com
答案 2 :(得分:-4)
我会说RTM;)
http://php.net/manual/en/function.parse-url.php
<?php
$url = 'http://username:password@hostname/path?arg=value#anchor';
print_r(parse_url($url));
echo parse_url($url, PHP_URL_HOST);
?>