Autor | Zpráva | ||
---|---|---|---|
Petr Profil |
#1 · Zasláno: 8. 9. 2024, 16:12:56
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(' & ', ' & ', $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 * |
#2 · Zasláno: 9. 9. 2024, 10:18:31
getElementsByTagName očekává tag, tj. media:content . Hodnotu atributu url jde pak získat jinou funkcí.
|
||
Petr Profil |
#3 · Zasláno: 9. 9. 2024, 14:56:41
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;} } ?> |
||
Časová prodleva: 1 rok
|
0