Nasıl TÜM bilgiyi bulana kadar kendini tekrarlar bir işlevi yapabilir?

0 Cevap php

Tüm bağlantıları web kesindir diyene kadar, bir web sitesinin ana geçer anasayfada tüm bağlantıları bulur, bulduğu bağlantıları geçer ve devam ediyor bir PHP işlevi oluşturmak istiyorum. Ben gerçekten çok ben sitelerinin benim ağı örümcek ve arama için bir "tek durak" kaynağı olabilir böyle bir şey yapmamız gerekiyor.

İşte ben bugüne kadar ne var -

function spider($urltospider, $current_array = array(), $ignore_array = array('')) {
    if(empty($current_array)) {
        // Make the request to the original URL
        $session = curl_init($urltospider);
        curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
        $html = curl_exec($session);
        curl_close($session);
        if($html != '') {
            $dom = new DOMDocument();
            @$dom->loadHTML($html);
            $xpath = new DOMXPath($dom);
            $hrefs = $xpath->evaluate("/html/body//a");
            for($i = 0; $i < $hrefs->length; $i++) {
                $href = $hrefs->item($i);
                $url = $href->getAttribute('href');
                if(!in_array($url, $ignore_array) && !in_array($url, $current_array)) {
                    // Add this URL to the current spider array
                    $current_array[] = $url;
                }
            }               
        } else {
            die('Failed connection to the URL');
        }
    } else {
        // There are already URLs in the current array
        foreach($current_array as $url) {
            // Connect to this URL

            // Find all the links in this URL

            // Go through each URL and get more links
        }
    }
}

Tek sorun, ben nasıl devam etrafında başımı almak gibi olamaz, değildir. Herkes bana yardımcı olabilir misiniz? Her şey bulundu kadar Temelde, bu fonksiyon kendini tekrar edecektir.

0 Cevap