PHP Dersleri

Php ile Sayfadaki Tüm Linklerin Listeleme

Sitenizdeki sayfanızda ne kadar link olduğunu hiç merak ettiniz mi? Sizin için önemli olmasa da arama motorları tarafından bazı kriterler dikkate alınmaktadır. Bunlardan biriside sayfadaki link kullanımıdır. Bu yazımızda sitenizde ne kadar link olduğunu göreceksiniz.

Link listesini çıkartmak için php de bulunan hazır kodların bulunduğu kütüphaneden DOMDocument classını kullanacağız. Bu classı kullanmadan önce link sayımı yapılacak olan siteye bağlanmak gerekmektedir. Bunun için ister file_get_contents, isterseniz de cURL ile bir bağlantı oluşturabilirsiniz.

Bağlantımızı oluşturduktan sonra kütüphanemizi kullanarak sitede yer alan a taglarının sayımını gerçekleştireceğiz. Fazla lafı uzatmadan örnek kodumuzu bir yazalım ve ardından ufakça bir açıklama yapalım.

$site = "https://ibrahimcevruk.com";
$baglan = file_get_contents($site);
$kutuphane = new DOMDocument();
@$kutuphane->loadHTML($baglan);
$xpath = new DOMXPath($kutuphane);
$hrefs = $xpath->evaluate("/html/body//a");
for ($a = 0; $a < $hrefs->length; $a++) {
    $href = $hrefs->item($a);
    $url = $href->getAttribute('href');
     if($url != "javascript:void(0)"){
          echo '<div>'.$url.'</div>';
     }
}

Not : Sorguda for döngüsü içinde if kullanmamın sebebi; javascript:void(0) değerine sahip olan linki gösterme dedim. Bunun dışında aynı linki birden fazla gösterebiliyor. Bunun için gruplama yapabilirsiniz. (Tekil link sayımını yapabilmek için)

İşte Yukarıdaki kodları kullanarak sitenizdeki linklerin çıktısını alabilirsiniz. $site değişkeninden istediğiniz sitenin linkini yazarak; o siteye ait linklere ulaşabilirsiniz. Adres yazarak isterseniz ana sayfa değil herhangi bir link yapısını da yazabilir, o sayfadaki link yapısına da ulaşabilirsiniz.

Çıktı ile ilgili daha fazla bilgi almak isterseniz o zaman print_r($kutuphane); yazıp ekran çıktısını alırsanız detaylı olarak gelen verileri görebilir, istediğiniz gibi işlem yapabilirsiniz.

İlgili Makaleler

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir