Žymės įrašai

Rugpjūtis12

Iliustracijų korekcija RSS agregatoriuose (Komentarai 182)

Žymės: php,html,rss,regexp

Pasidalink!

Flying monkeys stole my icon

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;
?>

 

« 1 »

Žymės RSS Žymės RSS