Ankündigung

Einklappen
Keine Ankündigung bisher.

Rekursive Suche von Links

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Rekursive Suche von Links

    Hallo zusammen. Bin ganz neu hier und habe ein grosses Problem ,das ich bis jetzt nicht lösen konnte .

    Ich versuche, eine rekursive Suche zu machen.

    Meine Funktion nimmt als Parameter einen Link, und sucht alle Links , die sie in der Seite findet und speichert sie in ein array(), für jeden neuen gefundenen Link , soll das gleiche Phänomen wieder gemacht werden, und nur die neuen Links wieder in das Array() gespeichert.

    Bis jetzt habe ich geschafft, mit dem Lesen, aber , wenn ich versuche den Dateinamen zu ändern, dann klappt es nicht so ganz.

    Bitte einfach testen und nochma danke für Ihre Hilfe.

    Mein Code:

    PHP-Code:
    <?php

    $link 
    =array();

    function 
    suche_rekursiv($dateiname)
    {    
        global 
    $link;
        
        
    $i=1;
        
        
        
    // Geht in Datei und suche alle Links raus
        
    if($dateiname)
        {
            if (
    $handle fopen ($dateiname"r"))
            {
            
                while (!
    feof($handle)) 
                {    
                    
    // Zeile für Zeile lesen
                  
    $buffer fgets($handle4096);          
                  
                  
    // Links von navi_left 
                  
    preg_match("!<a class=\"dunkelgrau\".*?href=\"(.*?)\"[^>]*>(.*?)</a>!",$buffer$treffer);
                        
                  if(!empty(
    $treffer[1]))
                  {                  
                      
    // Links wie : " /news.php?link=0 " ergänzen mit -> http://www.wmdaten.de 
                      
    if(preg_match("#^\/#"$treffer[1]))
                      {                  
                          
    $treffer[1] = 'http://www.wmdaten.de'.$treffer[1];                                                                  
                            
                            if (!
    in_array($treffer[1], $link)) 
                            {            
                                
    $link[] = $treffer[1];                        
                            }
                          
                          
    $i++;                
                      }    
                  }                                            
                }
                                
            }                                
        }    
            
        
    fclose ($handle); 
            
        
    $raus true;    
        
        
    $merke[] = $dateiname ;
        
        
    // Neuen Dateinamen holen
        
    foreach($link as $nummer => $value )
        {
            
            echo 
    $nummer.': Link : '.$value.'<br>';                                        
            
            
            
    // hole neuen Dateinamen , geht in die Schleife nur einmal rein
            
    if($raus)
            {        
                if(
    $dateiname != $value
                {                            
                    
    // Neuer Dateiname        
                    
    $dateiname $value;                                
                    
    $raus=false;                                            
                }
            }
        }
        echo 
    'Dateiname '.$dateiname.'<br>';
        
        if (!
    in_array($dateiname$merke))
        {    
            
    suche_rekursiv($dateiname);
        }
        
    }

    // Aufruf der Funktion
    suche_rekursiv("http://www.wmdaten.de");


    ?>
Lädt...
X