php преобразовывают все ссылки на абсолютные URL

Я пишу поисковый робот веб-сайта в 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?

5
задан David Zorokon 15 February 2010 в 20:00
поделиться

1 ответ

Вот начало

// 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 как еще один способ создания абсолютной привязки.

5
ответ дан 14 December 2019 в 19:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: