Autor Zpráva
Petr
Profil
Dobrý den , mám vytvořený skript na RSS čtečku v PHP.

<?php
    $rss = new DOMDocument();
    $rss->load('https://servis.idnes.cz/rss.aspx?c=vary');
    $feed = array();
    foreach ($rss->getElementsByTagName('item') as $node) {
        $item = array ( 
            'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
            'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue,
            'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
            'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue,
            'media' => $node->getElementsByTagName('media:content url')->item(0)->nodeValue,

            );
        array_push($feed, $item);
    }
    $limit = 20;
    for($x=0;$x<$limit;$x++) {
        $title = str_replace(' & ', ' &amp; ', $feed[$x]['title']);
        $link = $feed[$x]['link'];
        $description = $feed[$x]['desc'];
        $date = date('d.m.Y H:S', strtotime($feed[$x]['date']));
        $image = $feed[$x]['media'];

        echo '<p><strong><a href="'.$link.'" title="'.$title.'">'.$title.'</a></strong><br />';
        echo '<small><em>Přidáno: '.$date.'</em></small></p>';
        echo '<p>'.$description.'</p>';
        echo '<img src="' . $image . '"/>';

    }
?>

Texty a odkazy funguji. Jen se mi nezobrazuje náhledový obrázek ke článku.
Může mi někdo poradit, kde mám chybu.

<img src="">

Mám prázdný řádek bez linku na obrázek.

Chyba bude v následujícím řádku
 'media' => $node->getElementsByTagName('media:content url')->item(0)->nodeValue,

Jak lze vypsat články až druhý v pořadí?

Děkuji za pomoc
tttttttttt
Profil *
getElementsByTagName očekává tag, tj. media:content. Hodnotu atributu url jde pak získat jinou funkcí.
Petr
Profil
Včera jsem Vás žádal o pomoc. Skript jsem komplet přepsal. a načítaní url obrázku mi už funguje. Přikládám ukázku skriptu i pro ostatní.
<?php
//Feed URLs
$feeds = array("https://servis.idnes.cz/rss.aspx?c=vary");
        
//Read each feed's items
$entries = array();
foreach($feeds as $feed) 
{
$xml = simplexml_load_file($feed);
$entries = array_merge($entries, $xml->xpath("//item"));
}
        
//Sort feed entries by pubDate
usort($entries, function ($feed1, $feed2) 
{
return strtotime($feed2->pubDate) - strtotime($feed1->pubDate);
});

//Print all the entries
$hlavni_clanek = 1; 



foreach($entries as $entry)
{
?>

<a href="<?= $entry->link ?>"><?= $entry->title ?></a>
<p>Přidáno: <?= strftime('%d.%m.%Y %H:%M', strtotime($entry->pubDate)) ?></p>
            
            
<a href="<?= $entry->link ?>" target="_blank">            
<?
if ($media = $entry->children('media', TRUE)) 
{
if ($media->content) 
{
$attributes = $media->content->attributes();
$imgsrc = (string)$attributes['url'];
printf('<img src="%s" alt="" />', $imgsrc);
}
}
?>
</a>            

<p><?= $entry->description ?></p>
<?php
if (++$hlavni_clanek > 1) {break;}
}
?>

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0