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

Давайте теперь научимся нормализировать относительные сдвинутые пути. Такие пути содержат одну или несколько конструкций ../, означающих, что нужно подняться на папку выше.

Давайте посмотрим на примере. Пусть у нас есть следующий путь:

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

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

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

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

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

Реализуйте функцию, которая будет выполнять нормализацию путей такого вида.

Пусть парсер обращается к следующему 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/page.html">text</a> <a href="../../dir/page.html">text</a>