Ich versuche, eine Datei in PHP zu downloaden.Wie kann ich die Links von einer HTML-Seite extrahieren?
$file = file_get_contents($url);
Wie soll ich den Inhalt der Links innerhalb der Datei in $ url herunterladen ...
Ich versuche, eine Datei in PHP zu downloaden.Wie kann ich die Links von einer HTML-Seite extrahieren?
$file = file_get_contents($url);
Wie soll ich den Inhalt der Links innerhalb der Datei in $ url herunterladen ...
Sie benötigen die resultierende HTML-Zeichenfolge, entweder manuell oder über eine 3rd-Party-Plugin zu analysieren.
Danke Dutchie432 ... –
Dies erfordert Parsen HTML, die in PHP eine ziemliche Herausforderung ist. Um Ihnen viele Probleme zu ersparen, laden Sie eine HTML-Parsing-Bibliothek wie PHPQuery (http://code.google.com/p/phpquery/) herunter. Dann müssen Sie alle Links mit pq('a')
auswählen, durchlaufen Sie sie durchlaufen ihre href
Attributwerte, und für jeden, konvertieren Sie es von relativ zu absolut und führen Sie eine file_get_contents
auf die resultierende URL. Hoffentlich sollten Sie mit diesen Zeigern beginnen.
danke Nathan MacInnes –
Sie möchten also alle URLs in einer bestimmten Datei finden? REGEX zur Rettung ... und einige Beispielcode, unter dem sollte das tun, was Sie wollen:
$file = file_get_contents($url);
if (!$file) return;
$file = addslashes($file);
//extract the hyperlinks from the file via regex
preg_match_all("/http:\/\/[A-Z0-9_\-\.\/\?\#\=\&]*/i", $file, $urlmatches);
//if there are any URLs to be found
if (count($urlmatches)) {
$urlmatches = $urlmatches[0];
//count number of URLs
$numberofmatches = count($matches);
echo "Found $numberofmatches URLs in $url\n";
//write all found URLs line by line
foreach($urlmatches as $urlmatch) {
echo "URL: $urlmatch...\n";
}
}
EDIT: Wenn ich Ihre Frage richtig verstanden habe, haben Sie jetzt den Inhalt der gefundenen URLs herunterladen möchten. Sie würden das in der foreach
Schleife machen, die file_get_contents
für jede URL aufruft, aber Sie möchten vermutlich vorher etwas filtern (wie Bilder nicht downloaden usw.).
Laden Sie Links herunter, indem Sie file_get_contents aufrufen und den Link als Argument übergeben. – Oswald
möglich Duplikat von [Beste Methoden, HTML zu parsen] (http://StackOverflow.com/questions/3577641/best-methods-to-Parse-HTML/3577662#3577662) – Gordon