mit den relativen links kannst du doch ganz einfach checken:
gucke ob der link mit http:// anfängt, wenn nicht is es
ein relativer link und knallst einfach die
url der seite dran.
(evtl gefolgt von einem /).
edit1:
ich hab dir das ma eben in php hingeknallt.
müsste eigentlich funzen, habs nur 1-2x getestet.
Code:
<?php
function ReplaceCallback($hit)
{
//$hit[1] = "|'
//$hit[2] = http|
ftp
//$hit[3] =
url
global $currentURL;
//protokoll angegeben?
if(!empty($hit[2]))
$
url = "{$hit[2]}://";
else
{
//relativer link, akt.
url anfügen
$
url = $currentURL;
if($hit[3][0] != '/') $
url .= '/';
}
$
url .= $hit[3];
$
url = base64_encode($
url);
$result = " href={$hit[1]}http://www.meine-seite/script.php?
url=$
url{$hit[1]}";
return $result;
}
//die
url, dessen
html man grade liest
$currentURL = 'http://www.google.de';
//der reg. ausdruck (für
ftp & http links)
$expr = '# href=(\'|")(?:(http|
ftp)://)?(.*)\1#i';
//quelltext einlesen
$
html = file("./test.htm");
$
html = implode("", $
html);
//links ersetzen
$
html = preg_replace_callback($expr, ReplaceCallback, $
html);
//ausgabe
echo $
html;
?>