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:
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($handle, 4096);
// 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");
?>