我得到了一个网站网址列表:
http://www.example.com/
http://www.another.com/1/hi-hello
http://www.example.com/index.php
http://www.another.com/1/archive
http://www.example.com/about.php
http://www.another.com/
依此类推...所有都是随机顺序。
现在我想要的是按照这样的主域名对这个列表进行排序:
http://www.example.com/
- http://www.example.com/index.php
- http://www.example.com/about.php
http://www.another.com/
- http://www.another.com/1/hi-hello
- http://www.another.com/1/archive
那么有人能指出我正确的方向如何检测主域并列出其他域名?我正在考虑一个RegEx,但因为它可以是任何领域,所以认识到这是一项非常重要的工作......
答案 0 :(得分:2)
使用parse_url
:
<?php
$urls = Array(
"http://www.example.com/",
"http://www.another.com/1/hi-hello",
"http://www.example.com/index.php",
"http://www.another.com/1/archive",
"http://www.example.com/about.php",
"http://www.another.com/"
);
$urls_categorised = Array();
// First, group all the array elements by HOST
foreach ($urls as $url) {
$host = parse_url($url, PHP_URL_HOST);
if ($url != $host)
$urls_categorised[$host][] = $url;
}
// Now render each category in the way you specified
foreach ($urls_categorised as &$x) {
if (!count($x))
continue;
sort($x);
print "{$x[0]}\n";
array_shift($x);
foreach ($x as $y)
print "- {$y}\n";
}
?>
输出:
http://www.example.com/
- http://www.example.com/about.php
- http://www.example.com/index.php
http://www.another.com/
- http://www.another.com/1/archive
- http://www.another.com/1/hi-hello
答案 1 :(得分:1)
您可以使用parse_url()函数从您拥有的网址获取主机。然后,您将能够以良好的方式分离您的结果。
答案 2 :(得分:0)
我要做的是将它们添加到数组中。创建一个循环来检查每个项目并爆炸每个数组项目。通过这种方式,您可以搜索数组术语并执行第二个循环,以仅提取与搜索查询匹配的人员 这样的事情?
array(
key => value,
key2 => value2,
key3 => value3,
...
)
foreach ($array as $value)
{
foreach ($array as $value2)
{
if ($value == $value2) echo "- " . $value2;
}
}
你必须爆炸$ value和$ value2当然能够获得域名