我必须从网页的网址中提取网站的网址。 例如,这是我的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
来自这些网页的网址。
答案 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);
?>