aber an robots.txt halten sich suchmaschinen noch...
btw: ich würde auf keine fall alle unterseiten einlesen... das kann im besten fall inner endlosschleife enden. ich würde maximal 2 ebenen parsen und dann ende...
also seite einlesen
prüfen ob link da (sehr primitv gelöst jetzt)
wenn ja alles ok ansonsten alle links auslesen
preg_match_all auswerten... unterscheiden ob interner link oder externen. interne links zusammenbauen...
und jetzt für alle ausgelesenen links nochmal das selbe.
wenn mans mit ner rekrusiven funktion lösen will würde das so ausschauen:
aber das würde ich nicht empfehlen... für so nen spaß script mag das zwar noch gehen, aber lass das mal ne große seite sein dann stößt du so auch ganz schnell an die grenzen.
ich würde hier eher auf ne endlosschleife setzen die einen buffer mit urls abarbeitet... ist bei weiten flexibler. prinzig grob umrisen wäre hier das du am anfang eine deine url innen buffer schreibst. (sei es ein array,ne txtdatei, ne datenbank oder schlag mich tot)
hat den großen vorteil das man den buffer auslagern kann und jederzeit von der letzten stelle weiter machen kann, es wird nix doppelt ausgewertet, man hat keine overhead durch rekursion und man kann bei weiten besser bei einem fund die suche abbrechen als bei der rekursiven lösung.
btw: ich würde auf keine fall alle unterseiten einlesen... das kann im besten fall inner endlosschleife enden. ich würde maximal 2 ebenen parsen und dann ende...
also seite einlesen
PHP:
$daten = file_get_contents('dieseite.de');
prüfen ob link da (sehr primitv gelöst jetzt)
PHP:
preg_match('~href=(?:")https://derlink.de~'...)
wenn ja alles ok ansonsten alle links auslesen
PHP:
preg_match_all('~href=(?:")(\S*?)(?:")~'...)
preg_match_all auswerten... unterscheiden ob interner link oder externen. interne links zusammenbauen...
und jetzt für alle ausgelesenen links nochmal das selbe.
wenn mans mit ner rekrusiven funktion lösen will würde das so ausschauen:
PHP:
function serach($url,$serach_link,$ebene = 0) {
//prüfen ob ebene noch unter 2 ist wenn nein gleich wieder return;
//seite einlesen
//prüfen ob backlink da wenn ja rekursion abbrechen und flag auf ok setzen
//ansonsten alle links auslesen und für jeden gefundenen wieder serach(ausgelesener link,$serach_link,$ebene+1) aufrufen
//flag setzen das link nichtg gefunden
}
aber das würde ich nicht empfehlen... für so nen spaß script mag das zwar noch gehen, aber lass das mal ne große seite sein dann stößt du so auch ganz schnell an die grenzen.
ich würde hier eher auf ne endlosschleife setzen die einen buffer mit urls abarbeitet... ist bei weiten flexibler. prinzig grob umrisen wäre hier das du am anfang eine deine url innen buffer schreibst. (sei es ein array,ne txtdatei, ne datenbank oder schlag mich tot)
PHP:
$array = array(array(url=>'dieurl.de',status=>'offen','ebene'=>0);
while(1) {
//holle erste url die noch offen ist
$url = $array[$offene_url];
//url einlesen
//url status auf abgeschlossen setzen
//prüfen ob backlink, wenn ja flag auf ok setzen und break;
//ansonsten prüfen ob akutelle url noch unter ebene 2 ist wenn ja alle links einlesen von seite und in buffer speichern (doppelte urls filtern); dabei aktuelle ebene+1 speichern
}
//prüfen ob flag gesetzt ansonsten kein backlink gesetzt
hat den großen vorteil das man den buffer auslagern kann und jederzeit von der letzten stelle weiter machen kann, es wird nix doppelt ausgewertet, man hat keine overhead durch rekursion und man kann bei weiten besser bei einem fund die suche abbrechen als bei der rekursiven lösung.