zaartix
Новичок
обработка ссылок
Есть такая задача:
$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:
$file="www.site.ru/dir/index.html";
$data = fopen("http://".$file, "r");
$dat = fread($data, "999999");
fclose($data);
Может кто подскажет как эту задачку решить?
Я вот тут набросал код, но он далеко не тот, что нужен, просто не могу придумать как обрабатывать такие ссылки вроде "../" или "../../":
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 {
// здесь надо придумать как обрабатывать все ссылки, которые указаны относительно текущей папки
}
}
}
?>