Absoluutsete teede normaliseerimine PHP parsinnas
Kui veebilehtede parsimist teostatakse, peame me reeglina saama linkide aadresse, teed piltidele, CSS ja JavaScript failidele.
Meie eesmärkide jaoks oleks mugav, kui need aadressid sisaldaksid täielikku URL-i koos domeeni nimega, umbes nii:
<a href="http://targ.loc/dir/sub/page.html">text</a>
Reaalses elus on siiski domeeni nimi veebisaidi teedel tavaliselt välja jäetud ja teed näevad välja umbes sellised (algava kaldkriipsuga):
<a href="/dir/sub/page.html">text</a>
Teostame sellise tee normaliseerimise. Oletame, et meil on muutujas salvestatud domeen, mille poole pöördume:
<?php
$domain = 'http://targ.loc';
?>
Oletame, et me oleme ka eraldanud tee
href lingist:
<?php
$href = '/dir/sub/page.html';
?>
Teostame selle normaliseerimise:
<?php
$norm = $domain . $href;
?>
Hankige kõik lehel olevad href ja
teostage nende normaliseerimine:
<a href="/page.html">text</a>
<a href="/dir/page.html">text</a>
<a href="/dir/sub/page.html">text</a>
Hankige kõik lehel olevad href ja
teostage nende normaliseerimine, kui see on vajalik:
<a href="/page.html">text</a>
<a href="/dir/page.html">text</a>
<a href="/dir/sub/page.html">text</a>
<a href="http://targ.loc/dir/sub/page.html">text</a>
Hankige kõik lehel olevad src ja
teostage nende normaliseerimine, kui see on vajalik:
<img src="/img.png">
<img src="/images/img.png">
<img src="http://targ.loc/images/img.png">
Hankige kõik teed ja teostage nende normaliseerimine:
<link rel="stylesheet" href="/styles.css">
<script src="/scripts.js"></script>
Hankige kõik teed ja teostage nende normaliseerimine:
div {
background: url('/images/img.png');
}
Hankige kõik teed ja teostage nende normaliseerimine:
div {
background: url(/img.png);
background: url('/images/img.png');
background: url("/images/img.png");
background: url("http://targ.loc/images/img.png");
}