-2

可能重复:
获取没有 TLD 的域名

所以我有一个我正在努力工作的网站。在 URL 中有信息,我想解析它并使用它对 mysql 进行 db 调用:

http://www.relevant-info.org/home.html

我想把 Url 放到一个字符串中。

然后我只想从网址中获取“相关信息”。

$webaddress = $_SERVER["SERVER_NAME"];
$parts = parse_url($webaddress);
$url = substr($Parts, 4, -4);

^ 我正在使用它,并且我在一个正在测试它的 VM 上获得了 IP 地址(它是一个 centos 5.8 灯),所以简而言之,到目前为止这个接缝工作得很好:)

4

3 回答 3

1

无情的学分

您可以使用 PHP parse-url 函数轻松找到它:parse_url

用法示例:如果您想获取“相关信息”,PHP 5.4有效代码可能如下所示:

$Url = substr(parse_url("http://www.relevant-info.org/home.html")[1], 4, -4);

输出

相关信息

对于 PHP 5.3 及更低版本

$Parts = parse_url("http://www.relevant-info.org/home.html");
$Url = substr($Parts, 4, -4);

在未来的情况下,如果您没有像 parse-url 这样的花哨功能,您可以使用Regex或使用 str_split

请记住 str_split 需要较少的资源

于 2013-01-09T21:15:15.713 回答
0

我还有一个好主意!

爆炸呢?

var_dump(explode('.', 'http://www.relevant-info.org/home.html'));
array(4) {
  [0]=>
  string(10) "http://www"
  [1]=>
  string(13) "relevant-info"
  [2]=>
  string(8) "org/home"
  [3]=>
  string(4) "html"
}
于 2013-01-09T21:54:43.740 回答
-1

parse_url 无济于事,因为它不会拆分域。

我会建议一个正则表达式。根据您是否仅使用 www 子域,例如:

preg_match(#http(s)?://(www.)?(.+?)\..*#, $subject, $matches)

$matches[3]应包含 TLD 的子域

于 2013-01-09T21:14:35.397 回答