仅在非完整路径中获取域名

时间:2014-01-26 06:37:06

标签: php parsing

我知道我可以在php中用parse_url解析完整的url,但我的问题是当我没有完整的url ormat时,我怎么能得到域名。

我的网址有时处于完整路径中,有时处于不完整路径,

作为例子  blahblah.com/ddddd/fffff/a.php?ddddd
 http://blahblah.com/ddddd/fffff/a.php?ddddd

我希望它能让我回复 blahbla.com

我的网址不是浏览器网址,将它们视为变量而非当前网址

7 个答案:

答案 0 :(得分:1)

实现这一目标的正确方法是使用$_SERVER['HTTP_HOST'];

答案 1 :(得分:1)

试试这个

echo $_SERVER['SERVER_NAME'];

答案 2 :(得分:1)

使用

echo $_SERVER['SERVER_NAME'];

或删除'www。'使用

echo str_replace('www.', '', $_SERVER['SERVER_NAME']);

答案 3 :(得分:0)

试试这个,

$url='blahblah.com/ddddd/fffff/a.php?ddddd';
$Urls = parse_url($url);        
if(!isset($Urls['host'])){          
   $url = 'http://'.$url;
   $Urls = parse_url($url);
}       
echo $Urls['host'];

答案 4 :(得分:0)

棘手的方式:)

 $url_p=  parse_url($url);

    if(!isset($url_p['scheme'])){
        $url='http://'.$url;
        $url_p=parse_url($url);
    }
echo $url_p['host'];

答案 5 :(得分:0)

最好和官方的方法是使用parse_url() 但在你的特殊情况下,你需要一个技巧:

$url = 'http://'.preg_replace('!^https?://!i', '', $url);
  1. 首先,您有意确保开头没有http://或https://。
  2. 然后您在开头添加自己的http://
  3. 现在这个$ url最终有资格获得parse_url():
  4. echo parse_url( $url, PHP_URL_HOST );

答案 6 :(得分:0)

试试这个,

    $uri = $_SERVER['REQUEST_URI']; // $uri == example.com/index
    $exploded_uri = explode('/', $uri); //$exploded_uri ==     array('example.com','index')
    $domain_name = $exploded_uri[0]; //$domain_name = 'example.com'