Нормализация относительных путей при парсинге в PHP

Давайте теперь научимся нормализировать относительные пути. Такие пути пишутся без начального слеша:

<?php $href = 'dir/page.html'; ?>

В таком случае настоящий путь получается относительно текущего URL. Разница будет видна, когда мы обращаемся не к главной странице сайта, а к второстепенным:

<?php $url = 'http://targ.loc/cat/sat/'; ?>

В нашем случае нормализованный путь должен выглядеть следующим образом:

<?php $norm = 'http://targ.loc/cat/sat/dir/page.html'; ?>

Давайте нормализуем его программным образом:

<?php $norm = $url . $href; ?>

Пусть парсер обращается к следующему URL:

<?php $url = 'http://targ.loc/cat/sat/'; ?>

Получите все href на странице и выполните их нормализацию:

<a href="page.html">text</a> <a href="dir/page.html">text</a> <a href="dir/sub/page.html">text</a>