Sayfadaki tüm adresler almak nasıl (php)

2 Cevap

Başka altında bir (sitelerin yer imleri / listesi gibi bir şey) listelenen açıklamaları ile URL'ler ile bir sayfa var. Bunu nasıl sayfadaki tüm adresler almak ve (açıklama olmadan sadece url, her satıra bir tane) txt dosyasına yazmak için php kullanıyorsunuz?

Sayfa bu gibi görünüyor:

Some description

Other description

Another one

Ve ben komut dosyasının txt çıktısı bu gibi bakmak istiyorum:

http://link.com

http://link2.com

http://link3.com

2 Cevap

tek yön

$url="http://wwww.somewhere.com";
$data=file_get_contents($url);
$data = strip_tags($data,"<a>");
$d = preg_split("/<\/a>/",$data);
foreach ( $d as $k=>$u ){
    if( strpos($u, "<a href=") !== FALSE ){
        $u = preg_replace("/.*<a\s+href=\"/sm","",$u);
        $u = preg_replace("/\".*/","",$u);
        print $u."\n";
    }
}

Başka bir yol

$url = "http://wwww.somewhere.com";

$html = file_get_contents($url);

$doc = new DOMDocument();
$doc->loadHTML($html); //helps if html is well formed and has proper use of html entities!

$xpath = new DOMXpath($doc);

$nodes = $xpath->query('//a');

foreach($nodes as $node) {
    var_dump($node->getAttribute('href'));
}