აბსოლუტური გზების ნორმალიზაცია 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");
}