| 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: 2 roky
|
|||
0