我希望获得给定网站中的所有超链接。所以我写这个代码。但它不能正常工作。它只显示给定网址的所有超链接。但我希望获得给定网站的所有超链接。
<?php
function getAlllinks($site){
$link = file_get_contents($site);
$dom = new DOMDocument;
@$dom->loadHTML($link);
$links = $dom->getElementsByTagName('a');
foreach ($links as $link){
$url = $link->getAttribute('href');
if($url[0]!="#" && $url[0]!=" "){
echo $url. '<br>';
getAlllinks($url);
}
}
}getAlllinks("http://www.example.com");
?>
中
<html>
<body>
<a href="index.php">Homepage</a>
<a href="contact.php">Contact</a>
</body>
</html>
这里首先会显示超链接index.php和contact.php&amp;然后会显示index.php和contact.php的所有链接,或者contact.php可以是http://www.example.com/contact.php
答案 0 :(得分:0)
我认为你要做的是抓取收集所有链接的整个网站。您的代码示例无法执行此操作。您要做的是加载每个页面,抓取每个页面上的每个链接,然后递送这些链接。
查看这些链接以获取更多信息:
How do I make a simple crawler in PHP?
https://en.wikipedia.org/wiki/Web_crawler http://phpcrawl.cuab.de/example.html