Rugpjūtis12

Neretai pasitaiko, jog tinklaraščių įrašuose kelias iki iliustracijų yra pateikiamas reliatyviai (pvz.: <img src="/images/foo.bar" />). Analogiškas HTML kodas bus pateikiamas ir to tinklaraščio RSS šaltinyje, todėl RSS skaitymo programose arba agregatoriuose tokia iliustracija daugeliu atveju nebus atvaizduota (nes bus ieškoma ne tinklaraščio, o agregatoriaus serveryje).
Šiai situacijai yra du sprendimo būdai: iliutracijų korekcija RSS šaltinyje arba RSS skaitymo programoje ar agregatoriuje (daugelis jų atlieka šį veiksmą).
Pateikiu PHP kodą, kuris tinka abiejais atvejais. Jis HTML kode esantiems paveikslėliams preprend'ina HTTP host'ą:
<?php
// Tekstas, kurį reikia išparsinti:
$blogEntry = 'Kažkoks blogo įrašo tekstas<b>
<img src="http://www.cards.lt/img/cards_logo_small.jpg"
alt="Logo" /></b>
<img alt="Logo"
src="/img/cards-125x125.jpg" width="125" height="125" />';
// RSS'o URL, iš kurio parsinam įrašus (-ą)
$blogUrl = 'http://www.lescinskas.lt/index.php/lt/blog/rss';
$parsedUrl = parse_url($blogUrl);
// Išparsintas įrašas:
$parsedEntry = preg_replace('/(<\s*img [^\>]*src\s*=\s*[\""\']?)(\/[^\""\'\s>]*)/i', '\\1'.$parsedUrl['scheme'].'://'.$parsedUrl['host'].'\\2', $blogEntry);
echo $parsedEntry;
?>
Įrašų RSS
