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);
}
?>
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);
}
?>