обработка ссылок

zaartix

Новичок
обработка ссылок

Есть такая задача:
PHP:
$file="www.site.ru/dir/index.html";
$data = fopen("http://".$file, "r");
$dat = fread($data, "999999");
fclose($data);
$dat нужно обработать таким образом, чтоб ссылки вида <a href="../index.html"> заменялись на <a href="http://www.site.ru/index.html">. В общем чтоб все ссылки были относительно начала сервера, причем даже такие <a href="page.html"> превращалась в <a href="http://www.site.ru/dir/page.html">.
Может кто подскажет как эту задачку решить?

Я вот тут набросал код, но он далеко не тот, что нужен, просто не могу придумать как обрабатывать такие ссылки вроде "../" или "../../":
PHP:
<?
$data = fopen("http://".$file, "r");
$dat = fread($data, "999999");
fclose($data);
$domen=split("/",$file);
$vlogennost=sizeof($domen);
preg_match_all("!<a[^>]+href=\"?'?([^ \"'>]+)\"?'?[^>]*>([^<>]*?)</a>!is",$dat,$display); // выдираем все ссылки
$num=sizeof($display[1]);
for ($i=0;$i<$num;$i++) {
	if (eregi("^mailto:", $display[1][$i])) {
		continue; // отбрасываем е-мейлы
	} elseif (eregi("^javascript:", $display[1][$i])) {
		continue; // отбрасываем скрипты
	}
	if (eregi("^http:", $display[1][$i])) { // я не написал префикс http в нужном виде из-за того, что ваш форум его выделяет в ссылку после редактирования сообщения
		$ok[]=$display[1][$i]."<br>"; // эта ссылка в нужном виде, сохраняем...
	} else {
		// здесь надо придумать как обрабатывать все ссылки, которые указаны относительно текущей папки
		}
	}
}
?>
Ну хотяб наведите на мысль, плз...
 

zaartix

Новичок
впринципе можно использовать base url, но надо без него, т.к. по всем последующим ссылкам должен будет осуществляться переход скрипта и повторная обработка.
 
Сверху