PHP externe Internet seiten auslesen und neu aufbauen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP externe Internet seiten auslesen und neu aufbauen

    Ich würde gerne von externen seiten
    alle downloads mit "vorschaubild" in eine CSV datei speichern...

    soweit bin ich schon mal:
    http://www.ftmedia.de/go.php
    test seite die ausgelesen wird mit relativen links:
    http://www.ftmedia.de/test/test/go.htm

    erst wird die seite eingelesen und dann werden
    relativen Links durch absolute ersetzt.
    der code ist nicht von mir kenne mich nicht so gut aus...
    jetzt würde ich gerne auch die bilder "vorschaubild" durch absoluten link ersetzen...
    und dann bei der überarbeiteten seite alle download links mit vorschaubild in eine CSV datei speichern.
    also immer alles was jeweils zwischen
    <a href=
    und
    </a>
    steht ...

    ich hoffe das mir jemand helfen kann


    Code:
    <?php
    // Datei über HTTP aufrufen
    $url = 'http://www.ftmedia.de/test/test/go.htm';
    $old = implode('', file($url));

    // Links suchen und an absolute() weiterleiten
    $new = preg_replace(',<a([^>]+)href="([^>"\s]+)",ie',
    '"<a\1href=\"" . absolute("\2", $url) . "\""',
    $old);

    // HTML-Code ausgeben
    header('Content-type: text/plain');
    echo $new;

    // Funktion, die relative in absolute Links umschreibt
    function absolute ($relative, $absolute) {

    // Link ist schon absolut
    if (preg_match(',^(https?://|ftp://|mailto:|news,i', $relative))
    return $relative;

    // parse_url() nimmt die URL auseinander
    $url = parse_url($absolute);

    // dirname() erkennt auf / endende URLs nicht
    if ($url['path']{strlen($url['path']) - 1} == '/')
    $dir = substr($url['path'], 0, strlen($url['path']) - 1);
    else
    $dir = dirname($url['path']);

    // absoluter Link auf dem gleichen Server
    if ($relative{0} == '/') {
    $relative = substr($relative, 1);
    $dir = '';
    }

    // Link fängt mit ./ an
    elseif (substr($relative, 0, 2) == './')
    $relative = substr($relative, 2);

    // Referenzen auf höher liegende Verzeichnisse auflösen
    else while (substr($relative, 0, 3) == '../') {
    $relative = substr($relative, 3);
    $dir = substr($dir, 0, strrpos($dir, '/'));
    }

    // volle URL zurückgeben
    return sprintf('%s://%s%s/%s', $url['scheme'], $url['host'], $dir, $relative);
    }
    ?>
Lädt...
X