Normalizarea căilor absolute în analiza sintactică în PHP
Când se realizează analiza sintactică a site-urilor, de obicei trebuie să obținem adrese ale linkurilor, căi către imagini, fișiere CSS și JavaScript.
Pentru scopurile noastre, ar fi convenabil ca aceste adrese să conțină URL-ul complet împreună cu numele domeniului, aproximativ astfel:
<a href="http://targ.loc/dir/sub/page.html">text</a>
În viața reală, totuși, numele domeniului în căile de pe site este de obicei omis și căile arată aproximativ astfel (cu slash-ul la început):
<a href="/dir/sub/page.html">text</a>
Să efectuăm normalizarea unei astfel de căi. Să presupunem că în variabilă este stocat domeniul la care ne adresăm:
<?php
$domain = 'http://targ.loc';
?>
Să presupunem că am extras de asemenea calea din
href linkului:
<?php
$href = '/dir/sub/page.html';
?>
Să-i efectuăm normalizarea:
<?php
$norm = $domain . $href;
?>
Obțineți toate href de pe pagină și
efectuați normalizarea acestora:
<a href="/page.html">text</a>
<a href="/dir/page.html">text</a>
<a href="/dir/sub/page.html">text</a>
Obțineți toate href de pe pagină și
efectuați normalizarea acestora, acolo unde este necesar:
<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>
Obțineți toate src de pe pagină și
efectuați normalizarea acestora, acolo unde este necesar:
<img src="/img.png">
<img src="/images/img.png">
<img src="http://targ.loc/images/img.png">
Obțineți toate căile și efectuați normalizarea acestora:
<link rel="stylesheet" href="/styles.css">
<script src="/scripts.js"></script>
Obțineți toate căile și efectuați normalizarea acestora:
div {
background: url('/images/img.png');
}
Obțineți toate căile și efectuați normalizarea acestora:
div {
background: url(/img.png);
background: url('/images/img.png');
background: url("/images/img.png");
background: url("http://targ.loc/images/img.png");
}