如何使用PHP从长网址中获取基本名称?

时间:2012-08-06 19:06:45

标签: php regex

如果我有一个包含URL的变量,那么如何获取基本URL?也就是说,

$url = 'http://www.domain.com/some/stuff/that/I/do/not/want/';
$base_url = some_clever_function($url);
// $base_url is now set equal to 'domain.com'

我该怎么做?

2 个答案:

答案 0 :(得分:12)

parse_url将能够为您提取主机。

它有第二个参数,借助它可以提取URL的不同部分。要提取主机,请按以下方式使用parse_url

$host = parse_url($url, PHP_URL_HOST);

答案 1 :(得分:-3)

$url = 'http://google.com/dhasjkdas/sadsdds/sdda/sdads.html';
$parse = parse_url($url);
print $parse['host']; // prints 'google.com'

第二种方法

<?php
// get host name from URL
preg_match("/^(http:\/\/)?([^\/]+)/i",
    "http://www.php.net/index.html", $matches);
$host = $matches[2];

// get last two segments of host name
preg_match("/[^\.\/]+\.[^\.\/]+$/", $host, $matches);
echo "domain name is: {$matches[0]}\n";

/* Output is php.net */


?>