Я пытаюсь сделать rss-ридер/fetcher/parser или все, что вы хотите назвать. Подачу URL является http://www.jutarnji.hr/rss
Правильно отображать элементы массива из созданного массива xpath в php
Я сделал функцию PHP, где все работает, за исключением получения изображения из элемента RSS, потому что это очень сложный RSS поток и единственный простой способ был с помощью XPath, который бросает массив и я не знает, чтобы извлечь этот массив с помощью автоматизма внутри цикла Еогеаспа, чтобы показать изображение рядом с каждым пунктом подачи Примечания: это не мой канал RSS, я пытаюсь принести чужой RSS Feed:
function parser($feedURL) {
$rss = simplexml_load_file($feedURL);
$rss->registerXPathNamespace('n', 'http://jutarnji.hr/rss');
$i = 0;
foreach ($rss->entry as $feedItem) {
$i++;
$myDate = ($feedItem->updated);
$dateForm = explode(" ", $myDate);
if (date("j.n.Y.", strtotime($myDate)) == date("j.n.Y.")) {
$niceDate = date("H:i", strtotime($myDate));
}
else if (date("j.n.Y.", strtotime($myDate)) == date("j.n.Y.", strtotime("yesterday"))) {
$niceDate = "jučer u " . date("H:i", strtotime($myDate));
}
else {
$niceDate = date("j.n.Y.", strtotime($myDate)) . " u " . date("H:i", strtotime($myDate));
}
$feedurl = ($feedItem->link->attributes()->href);
$imgUrl = $rss->xpath("//n:link[@rel='enclosure']/@href"); //This throws an array which I cannot extract and use in this foreach loop as well
$urltoimage = (string)$imgUrl[0][0][1]; // This was my try to atleast get a specific item but not working
echo "<div class='box'>
<h3><a target='_blank' href='$feedurl' title='$feedItem->title'>" . $feedItem->title . "</a></h3>
<p><img src='$urltomage'/>" . $feedItem->description . "</p>
<p class='belowpost'><img src='images/time.png'/>" . $niceDate. "<a class='cont' target='_blank' href='$feedurl' title='$feedItem->title'>Više</a></p></div>";
if($i >= 20) break;
} }
проблемы где-то здесь:
$imgUrl = $rss->xpath("//n:link[@rel='enclosure']/@href"); //This throws an array which I cannot extract and use in this foreach loop as well
$urltoimage = (string)$imgUrl[0][0][1]; // This was my try to atleast get a specific item but not working
любая помощь до тех пор, пока существует никаких книг не включены лол Заранее спасибо, это очень важно для меня
Попробуйте сделать var_dump из $ imgUrl как этот 'var_dump ($ imgUrl);'. Вставьте то, что вы получите в своем вопросе. Вероятно, вы обнаружите, что это не массив, а stdObject. – Tom
Вставить var_dump ($ imgUrl); – vodich
Я думаю, что ваша регистрация пространства имен должна быть '$ rss-> registerXPathNamespace ('n', 'http://www.w3.org/2005/Atom');' (смотря на начало фида ' Xml version =" 1.0 "encoding =" UTF-8 "?>'). Но нужно ли это? Когда я запускаю '// link [@ rel = 'enclosure']/@ href' на http://videlibri.sourceforge.net/cgi-bin/xidelcgi с XPath2.0 и источником XML в качестве ввода, я получаю все URL-адреса, которые вы нацеливаете (пространство имен по умолчанию?). Вы также можете попробовать '// n: link [@ rel = 'enclosure']/@ n: href' –