Нормализација на апсолутни патеки при парсирање во PHP
Кога се врши парсирање на веб-страници, обично треба да добиеме адреси на врски, патеки до слики, CSS и JavaScript датотеки.
За нашите цели би било погодно ако овие адреси содржат целосен URL заедно со името на доменот, отприлика вака:
<a href="http://targ.loc/dir/sub/page.html">text</a>
Во реалниот живот, сепак, името на доменот во патеките на веб-страницата обично се испушта и патеките изгледаат отприлика вака (со коса црта на почетокот):
<a href="/dir/sub/page.html">text</a>
Ајде да извршиме нормализација на таква патека. Нека во променливата ни се чува доменот до кој се обраќаме:
<?php
$domain = 'http://targ.loc';
?>
Нека исто така сме ја извлекле патеката од
href врската:
<?php
$href = '/dir/sub/page.html';
?>
Ајде да ја извршиме нејзината нормализација:
<?php
$norm = $domain . $href;
?>
Добијте ги сите href на страницата и
извршете ја нивната нормализација:
<a href="/page.html">text</a>
<a href="/dir/page.html">text</a>
<a href="/dir/sub/page.html">text</a>
Добијте ги сите href на страницата и
извршете ја нивната нормализација, каде што е потребно:
<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>
Добијте ги сите src на страницата и
извршете ја нивната нормализација, каде што е потребно:
<img src="/img.png">
<img src="/images/img.png">
<img src="http://targ.loc/images/img.png">
Добијте ги сите патеки и извршете ја нивната нормализација:
<link rel="stylesheet" href="/styles.css">
<script src="/scripts.js"></script>
Добијте ги сите патеки и извршете ја нивната нормализација:
div {
background: url('/images/img.png');
}
Добијте ги сите патеки и извршете ја нивната нормализација:
div {
background: url(/img.png);
background: url('/images/img.png');
background: url("/images/img.png");
background: url("http://targ.loc/images/img.png");
}