Я работал над алгоритмом паука и у меня были некоторые проблемы со ссылками.
пример того, как это работает:
получил контент от -> example.com/bob/index.php?page=funny+faces
содержание:
<html>
<a href="../jack/index.php"> link 1 </a>
<a href="/bob_more_info"> link 2 </a>
<a href="http://www.youtube.com"> link 3 </a>
</html>
передать контент через функцию получения ссылок
возвращена функция ссылок
[0] = ../jack/index.php
[1] = / bob_more_info
[2] = http://www.youtube.com
теперь мне нужно сделать ссылки такими, по каким страницам я их получил (example.com/bob/index.php?page=funny+faces)
так
[0] -> ../jack/index.php в example.com/jack/index.php
[1] -> / bob_more_info в example.com/bob/bob_more_info
[2] -> http://www.youtube.com
Я запрашиваю функцию, которая может выполнять преобразование. Это мое, но это не всегда работает и становится болью. Если бы вы могли отредактировать его или написать мне функцию, это было бы очень ценно. Заранее спасибо.
Вот моя функция в настоящее время:
//example:
//$newURL = URLfix("example.com/bob/index.php?page=funny+faces", "../jack/index.php");
function URLfix ($url, $ext)
{
if(is_valid_url($url."/"))
{
$url .= "/";
}
$ar1 = explode("/", $url);
if(count($ar1) == 1)
{
return $url."/".$ext;
}
$target = $ar1[count($ar1) - 1];
if($target == "")
{
return $url.$ext;
}
if(strpos(" ".$target, "."))
{
$cur = "";
for($i = 0; $i < count($ar1) - 1; $i ++)
{
$cur .= $ar1[$i];
$cur .= "/";
}
return $cur.$ext;
}
return $url."/".$ext;
}