2

これを使用して、RSS フィードのコンテンツを解析しています。

$rss = new DOMDocument();
$rss->load($feedurl);
$feed = array();
foreach ($rss->getElementsByTagName('item') as $node) {
    $item = array(
        'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
        'content' => $node->getElementsByTagName('content:encoded')
            ->item(0)->nodeValue,
        'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
        'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue,
        'guid' => $node->getElementsByTagName('guid')->item(0)->nodeValue,
    );
    array_push($feed, $item);
}
$limit = 1;
for ($x = 0; $x < $limit; $x++) {
    $title   = str_replace(' & ', ' &amp; ', $feed[$x]['title']);
    $link    = $feed[$x]['link'];
    $content = $feed[$x]['content'];
    $guid    = $feed[$x]['guid'];
}

コンテンツを変数に割り当てます。

1つを除いて、それらはすべて機能しています。どうしてこれなの?

誰かがこれを修正するのを手伝ってください:)

4

2 に答える 2

3

同様の問題があり、fortytwoが言及したリンクをたどった ところ、この回答が表示されたとおりに機能していませんでした (その回答の編集を送信します)。 . これにより、非常に簡単になります。

<?php
$xml=("https://en.blog.wordpress.com/feed/");


function getFeed($feed_url) {
        $feeds = file_get_contents($feed_url);
        $feeds = str_replace("<content:encoded>","<contentEncoded>",$feeds);
        $feeds = str_replace("</content:encoded>","</contentEncoded>",$feeds);
        $rss = simplexml_load_string($feeds);

    echo "<ul>";
    $x=$rss;
        foreach($x->channel->item as $entry) {
            echo "<li><a href='$entry->link' title='$entry->title'>" . $entry->title . "</a></li>";
            echo "<li>$entry->contentEncoded</li>";
        }
    echo "</ul>";
}

getFeed($xml);
于 2015-07-26T05:08:09.697 に答える