Já to řeším přes následující PHP script. Budeš potřebovat knihovnu SimplePie, tu seženeš na netu.
Script:
PHP kód:
<?php
/*
-- Script by Jaa(c) 4 www.tutorials.cz
-- podpora na http://www.tutorials.cz/clanek1368-
-- Pokud mate jakekoliv dotazy, nebojte se mi tuts napsat, popr. napiste na dan(at)princ.name
----- VENUJTE CHVILI NASTAVENI, MUSITE VYPLNIT VSE -----
*/
//relativní cesta (vuci tomuto souboru) k obrazku na pozadi - MUSI BYT v *.png
$obrpozadi = './img/emeres_rss.png';
//relativní cesta k souboru s fontem + nazev fontu *.ttf - font MUSI BYT v *.ttf
$font = './font/DejaVuSansCB.ttf';
//Cesta k RSS, včetně http://
$rssurl = 'http://www.emeres.eu/feed/rss';
//pocet radku - zobrazenych clanku v podpisu
$clanku = 2;
//maximalni delka radku, zbytek se orizne a zobrazi se 3 tecky "..."
$znaku = 35;
//velikost pisma - v nejakych podivnych relativnich jednotkach, muste vyzkouset
$velikost = 9;
//zarovnani clanku, pokud ma byt zprava tak true, pokud zleva tak false
$zprava = false;
//odsazeni zprava v pixelech, pokud $zprava = true;
$ozprava = 0;
//odsazeni zleva v pixelech, pokud $zprava = false;
$ozleva = 5;
//odsazeni shora v px, prvni radek bude odszaen o nasledujici hodnotu $radek, tzn muzete zadat i zapornou hodnotu
$oshora = 40;
//vyska radku v px
$radek = 25;
//barva prvniho radku - tri decimalni cisla v poradi r, g, b, cisla z intervalu <0;255>
$barva1 = array( 255, 255, 255 );
//barva ostatnich radku
$barva2 = array( 255, 255, 255 );
require('./simplepie_config.php');
?>
simplepie_config.php:
PHP kód:
<?php
//Povolení cache, true -> cachovani povoleno. V tom případě je potřeba vytvořit adresář cache s právem zápisu (CHMOD 777)
$cache = true;
//Doba cache
$cache_duration = 3600;
//Pokud nejste na free hostingu, odkomentujte následující řádku, jinak se vám nemusí načíst písma. Na free hostingu to pravdepodobne nepojede kvuli Safe modu
@putenv('GDFONTPATH=' . realpath('.'));
/*
----- VSE POTREBNE NASTAVENO -----
*/
$obrazek = imagecreatefrompng($obrpozadi);
//imagealphablending($obrazek, true);
//imagesavealpha($obrazek, true);
$zapsat = array();
//čtečka
require_once './inc/simplepie.inc';
$rss = new simplepie();
$rss->enable_cache($cache);
$rss->set_cache_duration($cache_duration);
$rss->set_feed_url($rssurl);
$rss->init();
$rss->handle_content_type();
if ($rss->data):
for ($i = 0; $i < $clanku; $i++)
{
$feed = $rss->get_item($i);
$item = $feed->get_title();
if (isset($item))
$zapsat[] = $item;
}
endif;
$r = 1;
foreach($zapsat as $id => $clanek)
{
if(strlen($clanek) > $znaku)
{
$clanek = mb_substr($clanek, 0, $znaku-3, 'utf-8');
$clanek .= "...";
}
if ($zprava) {
$box = @imagettfbbox($velikost, 0, $font, $clanek);
$sirka = $box[2] - $box[0];
$x = @imagesx($obrazek) - $sirka - $ozprava;
}
else {
$x = $ozleva;
}
$vyska = $oshora + $r * $radek;
if ($r == 1) {
$barva = @imagecolorallocate($obrazek, $barva1[0], $barva1[1], $barva1[2]);
}
else {
$barva = @imagecolorallocate($obrazek, $barva2[0], $barva2[1], $barva2[2]);
}
@imagettftext($obrazek, $velikost, 0, $x, $vyska, $barva, $font, $clanek);
$r++;
}
header('Content-type: image/png');
@imagepng($obrazek);
@imagedestroy($obrazek);
?>
.htaccess:
PHP kód:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} \.png$
RewriteRule ^(.*).png$ $1.php
Výsledek: