拿url并解析其中的一部分

时间:2013-01-09 21:05:51

标签: php

  

可能重复:
  Getting domain name without TLD

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

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

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

然后我想只从网址中获取'related-info'。

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

^我正在使用它并且我在虚拟机上获得了IP地址(它是一个centos 5.8灯)我正在测试这个,所以总之这个接缝到目前为止工作良好:)

3 个答案:

答案 0 :(得分:1)

Relentless

的信用

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

示例用法:如果您想获得'related-info', 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需要更少的资源

答案 1 :(得分: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"
}

答案 2 :(得分:-1)

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

我建议使用正则表达式。您只使用www子域名,如下所示:

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

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