Я пишу поисковый робот веб-сайта в php, и у меня уже есть код, который может извлечь все ссылки из сайта. Проблема: сайты используют комбинацию абсолютных и относительных URL. Примеры (http замененный hxxp, поскольку я не могу отправить гиперссылки):
hxxp://site.com/
site.com
site.com/index.php
hxxp://site.com/hello/index.php
/hello/index.php
hxxp://site2.com/index.php
site2.com/index.php
Я не имею никакого контроля над ссылками (если они являются абсолютными/относительными), но я действительно должен следовать за ними. Я должен преобразовать все эти ссылки в абсолютные URL. Как я делаю это в php?
Вот начало
// Your crawler was sent to this page.
$url = 'http://example.com/page';
// Example of a relative link of the page above.
$relative = '/hello/index.php';
// Parse the URL the crawler was sent to.
$url = parse_url($url);
if(FALSE === filter_var($relative, FILTER_VALIDATE_URL))
{
// If the link isn't a valid URL then assume it's relative and
// construct an absolute URL.
print $url['scheme'].'://'.$url['host'].'/'.ltrim($relative, '/');
}
Изучите метод http_build_url как еще один способ создания абсолютной привязки.