Нормализация относительных путей при парсинге в 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>