Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Spider siti

  1. #1

    Spider siti

    ho creato questa classe in php...
    è uno spider per siti internet...
    ho un problema però:
    nella parte dove c'è la ricorsiva($this->Indexing) nlla funzione indexing...
    in quel punto non funziona niente...
    che devo fare???
    provatela:
    Codice PHP:
    <?php
    session_start
    ();
    class 
    Search
    {
        private 
    $original_url;
        var 
    $max 10;
        
        function 
    Search($url$mode){
            
    $this->original_url $url;
            if(
    $mode == 'indexing'){
                
    $arg func_get_args();
                
    $index_tag array_key_exists(3$arg) && is_array($arg[3]) ? func_get_arg(3) : array('<a.*?href="(.*?)"''<h1.*?>(.*?)<\/h1>''<h2.*?>(.*?)<\/h2>''<h3.*?>(.*?)<\/h3>''<span.*?>(.*?)<\/span>');
                
    $this->Indexing($url$index_tag);
            }
        }
        
        function 
    Indexing($url$index_tag$rec false){
            
    $handler = @fopen($url'r'); #inizializzo il buffer
            
    if($handler){
                while(
    $buffer fgets($handler4096)){
                    !isset(
    $file) ? $file $buffer $file .= $buffer;
                    
    #riunisco tutte le righe
                
    }
            } else {
                
    trigger_error('errore nella lettura del file'E_USER_ERROR);
                
    #se l'handler non è partito: errore
            
    }
            
    $file preg_replace('/.*?<--\/notindex-->/is',''$file);
            
    #non leggo i tag tra i delimitatori...
            
    foreach($index_tag as $tag){
                
    #ciclo sui tag
                
    if(preg_match_all('/'.$tag.'/is'$file$index)){
                    
    $spider[$url][$tag] = $index;
                    
    #emetto il codice ricercato
                
    }
            }
            !isset(
    $_SESSION['tot']) ? $_SESSION['tot'] = null;
            
    #se la sessione tot non è settata la setto altrimenti null
            
    $eq $rec === false false $this->original_url != $url true false;
            
    #se $rec è identico a false emmetto true altrimenti se $this->orginal_url è diverso da $url emetto true altrimenti false
            
    if(isset($spider[$url]['<a.*?href="(.*?)"'])&&is_array($spider[$url]['<a.*?href="(.*?)"'])&&$eq&&$_SESSION['tot'] <= $this->max){
                
    #se $spider[$url]['<a.*?href="(.*?)"'] è fissata e $spider[$url]['<a.*?href="(.*?)"'] è un array e $eq è uguale a true e $_SESSION['tot'] è minore o uguale a $this->max
                
    $i 1;
                
    $_SESSION['visited'][0] = true;
                foreach(
    $spider[$url]['<a.*?href="(.*?)"'][1] as $key => $url_recursive){
                    if(
    preg_match('/http:\/\/.*?/is'$url_recursive)&&!array_key_exists($url_recursive$_SESSION['visited'])){
                        
    $time[$i++] = $this->Indexing($url_recursive$index_tagtrue);
                        
    $_SESSION['visited'][$url_recursive] = 0;
                        
    $_SESSION['tot']++;
                    }
                }
            }
            if(!
    $rec){
                
    $time[0] = $spider;
            }
            
    print_r($time);
        }
    }
    $ind = new Search('http://localhost:85/php3/index.php','indexing');
    ?>

  2. #2

  3. #3

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.