如何从网页的网址中提取网站的网址?

时间:2012-04-23 12:16:30

标签: php

我必须从网页的网址中提取网站的网址。 例如,这是我的PHP代码:

<?php

$pageA = "http://stackoverflow.com/questions/tagged/php";
$pageB = "https://www.google.it/search?channel=cs&ie=UTF-8&q=php+download";
$pageC = "http://www.facebook.com/ladygaga";
$pageD = "www.youtube.com";
$pageE = "yahoo.com";

?>

我必须提取

stackoverflow.com
www.google.it
www.facebook.com
www.youtube.com
yahoo.com

来自这些网页的网址。

1 个答案:

答案 0 :(得分:1)

parse_url正是为了这个。从链接手册:

  

此函数解析URL并返回一个关联数组,其中包含存在的URL的各种组件。

示例:

<?php
$url = 'http://username:password@hostname/path?arg=value#anchor';

print_r(parse_url($url));
?>

将输出:

Array
(
  [scheme] => http
  [host] => hostname
  [user] => username
  [pass] => password
  [path] => /path
  [query] => arg=value
  [fragment] => anchor
)

<强>更新

没有方案parse_url的情况无法识别其他字段。此问题的解决方法是捕获此情况,附加默认方案并重新分析。代码看起来像:

<?php
$url = 'yahoo.com/help';
$fields = parse_url($url);

if(empty($fields['scheme'])) {
  $fields = parse_url('http://' . $url);
}

print_r($fields);
?>