2016-06-15 15 views
0

私は与えられたサイトですべてのハイパーリンクを取得したいと思います。だから私はこのコードを書く。それは正しく動作していません。指定されたURLのハイパーリンクのみを表示します。しかし、私は与えられたサイトのすべてのハイパーリンクを取得したい。例えば 与えられたURLの全ページのhrefを取得

<?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> 

http://www.example.com

に最初のindex.phpとcontact.phpまたは連絡先のすべてのリンクが表示されます、その後、ハイパーリンクのindex.phpとcontact.php &を表示します。 PHPはhttp://www.example.com/contact.php

+0

PHPを使用してウェブサイトをクロールする方法を検索します。詳細はこれらのリンクは

チェックアウト – SML

答えて

0

あなたは何をしようとしていると思いますが、すべてのリンクを集めるウェブサイト全体をクロールしています。あなたのコード例ではそのことができません。あなたがしたいことは、各ページを読み込み、各ページのすべてのリンク、それらのリンク上の再帰を取得します。

How do I make a simple crawler in PHP?

https://en.wikipedia.org/wiki/Web_crawler http://phpcrawl.cuab.de/example.html

関連する問題