0

我必须从页面的 URL 中提取网站的 URL。例如,这是我的 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

从这些页面的 URL。

4

1 回答 1

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);
?>
于 2012-04-23T12:20:26.607 回答