Links aus Directory Listing parsen
Matthias Jütte
- php
Hallo!
Kennt jemand von euch eine fertige Lösung um alle Verzeichnis- und Dateilinks aus dem HTML-Code eines Directory Listings (wie hier:http://spamassassin.apache.org/publiccorpus/obsolete/?C=M;O=A auszulesen?
Man sagte mir, daß das in Perl mittels LWP möglich sei. Das sagt mir aber gar nichts, ich suche eine PHP-Lösung. Aber vielleicht macht das die Sache für den ein oder anderen klarer.
Gruß
Matthias
Hallo!
Kennt jemand von euch eine fertige Lösung um alle Verzeichnis- und Dateilinks aus dem HTML-Code eines Directory Listings (wie hier:http://spamassassin.apache.org/publiccorpus/obsolete/?C=M;O=A auszulesen?
Ja! Ich bin mir sicher Du auch. Stellt Euch doch nicht immer so an, als wäre PHP nur eine Brücke für Datenbanken! Der ausgegebene Directoryindex ist auch nichts weiter als ein String, den man zerlegen lassen kann. In Deinem Beispiel ist ein sauberer Trenner
{alt="[ ]"> <a href="}
$text=explode('alt="[ ]"> <a href="',file_get_contents('http://domain.tld/verzeichnis/'));
for($i=1;$text[$i];$i++)
{
$x=explode('"',$text[$i],2);
$a[]=$x[1];
}
print_r($a);
Entschludige, daß Du jetzt meinen Brast abbekommst, aber ist doch wirklich war.
Gruß aus Berlin!
eddi
$text=explode('alt="[ ]"> <a href="',file_get_contents('http://domain.tld/verzeichnis/'));
for($i=1;$text[$i];$i++)
{
$x=explode('"',$text[$i],2);
# $a[]=$x[1];
$a[]=$x[0];
}
print_r($a);
Gruß aus Berlin!
eddi
Hallo!
Ja! Ich bin mir sicher Du auch.
Da hast du Recht, dein Vorschlag von unten (zumindest die Richtung) ist mein Plan B.
Stellt Euch doch nicht immer so an, als wäre PHP nur eine Brücke für Datenbanken!
Tun wir doch nicht ... immer ;-)
In Deinem Beispiel ist ein sauberer Trenner
{alt="[ ]"> <a href="}
Habe mir die Seite jetzt gar nicht so genau angesehen, aber in meinem konkreten Fall kann es auch vorkommen, daß da alt="[DIR]", alt="[TXT]" und was weiß ich noch was steht.
Weiterhin brauche ich nicht nur den Link, sondern auch dessen Bezeichnung (also den Text zwischen den <a>-Tags. Un dann muß ich ja danach auch noch das Datum rausschmeißen.
Das wird also schon ein recht vielschrittiges Rumgeschnipsel pro Zeile, um das ich mich natürlich drücken will (wie sagt man so schön: das Rad nicht neu erfinden).
Wenn also doch noch jemand weiß, ob es dazu schon was Fertiges (ich weiß bereits, das wir hier bei SELF-blablabla sind) gibt, oder ob es eleganter geht, immer her damit.
Entschludige, daß Du jetzt meinen Brast abbekommst, aber ist doch wirklich war.
NP, muß ja immer mal wieder sein. Hab' jetzt einen gut bei dir ;-)
Gruß
Matthias
Hallo!
Habe mir die Seite jetzt gar nicht so genau angesehen, aber in meinem konkreten Fall kann es auch vorkommen, daß da alt="[DIR]", alt="[TXT]" und was weiß ich noch was steht.
dann ist Dein Trenner {]"> <a href="} wobein im o. g. Beispiel $a[0] (ggf. auch $a[count($a)-1]) nicht Dateien/Verzeichnisse bezeichen.
Weiterhin brauche ich nicht nur den Link, sondern auch dessen Bezeichnung (also den Text zwischen den <a>-Tags. Un dann muß ich ja danach auch noch das Datum rausschmeißen.
Bitte zeige mir einen DirectoryIndex, wo der Link nicht dem Textknoten entspricht und ich bau Dir die Lösung...
Das wird also schon ein recht vielschrittiges Rumgeschnipsel pro Zeile, um das ich mich natürlich drücken will (wie sagt man so schön: das Rad nicht neu erfinden).
Nein, daher war ich doch so sauer. Sorry noch mal.
Wenn also doch noch jemand weiß, ob es dazu schon was Fertiges (ich weiß bereits, das wir hier bei SELF-blablabla sind) gibt, oder ob es eleganter geht, immer her damit.
Gruß aus Berlin!
eddi
Hallo!
Bitte zeige mir einen DirectoryIndex, wo der Link nicht dem Textknoten entspricht und ich bau Dir die Lösung...
Hast natürlich Recht, du hast mich kurz davor es doch selbst zu versuchen ;-)
Gruß
Matthias
Hallo!
Hast natürlich Recht, du hast mich kurz davor es doch selbst zu versuchen ;-)
Mach mal ;) - ist ganz einfach und auch wesentlich erfahrungsträchtiger als: Chips-Tüte auf und fertig ist das Abendmahl
Gruß aus Berlin!
eddi
Hallo!
Habe es jetzt so gelöst:
$file = file_get_contents("<URI>");
preg_match_all("#(alt|ALT)="[(.{3})]"> <(a|A) (href|HREF)="(.*)">(.*)</(a|A)>#", $file, $matches);
foreach ($matches[5] as $key => $val) {
echo "<a href="".$val."">".$matches[6][$key]."</a><br />";
}
War gar nicht so schwer, danke nochmal für den A**tritt! ;-)
Gruß
Matthias