Hallo,
ich möchte meine gesamte Webseite nach Links durchsuchen, diese in einer DB abspeichern und später als Sitemap ausgeben. Da es sich aktuell um ca. 1500. Seiten handelt und jederzeit welche dazukommen, sollte das automatisch funktionieren.
Ich habe bereits ein Skript soweit geschrieben, dass die Links ausliest und in die DB speichert. Dabei gibts aber 2 probleme a) die Zeit, die beansprucht wird und b) es werden auch ausgehende Links mit aufgelistet.
Die Klasse schaut so aus (etwas gekürzt):
public function __construct($url) {
global $db;
$this->mark= $this->getContent($url);
}
public function getContent($url) {
return file_get_contents($url);
}
protected function GetLinks() {
if (!empty($this->mark)){
preg_match_all('/\s+href\s*=\s*[\'\']?([^\s\'\']+)[\'\'\s]+/ims', $this->markup, $links, PREG_PATTERN_ORDER);
foreach($links as $key => $val) {
return !empty($links[1]) ? $links[1] : FALSE;
}
}
Alles anzeigen
Ich möchte bei der Funktion GetLinks etwas verändern, sodass in das Array keine fremden URLS geschrieben werden, sondern nur meine. Kann ich die regulären Ausdruck so anpassen, dass direkt fremde URLS ausgeschlossen werden? Wenn ja hat jemand eine Lösung oder Tip?
Wenn erstmal die fremden URLS entfernt wurden aus dem Array, wird die Schleife die durchlaufen werden muss auch kürzer und damit sollte die Geschwindigkeit sich besssern.
Ich steht ein bisschen aufm Schlauch^^