我知道我可以在php中用parse_url解析完整的url,但是我的問題是當我沒有完整的url ormat時,我如何獲取域名。只在未完整路徑中獲取域名
我的網址是2 condtion有時完整路徑,有時不完整路徑,
爲例
blahblah.com/ddddd/fffff/a.php?ddddd
http://blahblah.com/ddddd/fffff/a.php?ddddd
我想這回我blahbla.com
我的網址不是瀏覽器網址,請把它們當作變量不當前的網址
我知道我可以在php中用parse_url解析完整的url,但是我的問題是當我沒有完整的url ormat時,我如何獲取域名。只在未完整路徑中獲取域名
我的網址是2 condtion有時完整路徑,有時不完整路徑,
爲例
blahblah.com/ddddd/fffff/a.php?ddddd
http://blahblah.com/ddddd/fffff/a.php?ddddd
我想這回我blahbla.com
我的網址不是瀏覽器網址,請把它們當作變量不當前的網址
取巧的辦法:)
$url_p= parse_url($url);
if(!isset($url_p['scheme'])){
$url='http://'.$url;
$url_p=parse_url($url);
}
echo $url_p['host'];
試試這個
echo $_SERVER['SERVER_NAME'];
使用
echo $_SERVER['SERVER_NAME'];
或刪除的 'www。'使用
echo str_replace('www.', '', $_SERVER['SERVER_NAME']);
試試這個,
$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'];
如果不包含'http' ??? – zhilevan
已更新的答案。請檢查! –
它會使用parse_url()
但是在您的特定情況下,你需要做的最好的和官方的方法絕招:
$url = 'http://'.preg_replace('!^https?://!i', '', $url);
echo parse_url($url, PHP_URL_HOST);
試試這個,
$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'
請避免提供塊引用答案,您應該解釋你的代碼的作用以及它如何解決問題。 – Jordan
即使協議丟失,parse_url也可以正常工作。 –