Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用标记检索RSS源<;内容:编码>;_Php_Rss - Fatal编程技术网

Php 使用标记检索RSS源<;内容:编码>;

Php 使用标记检索RSS源<;内容:编码>;,php,rss,Php,Rss,我有以下代码片段: function getFeed($feed_url) { $content = file_get_contents($feed_url); $x = new SimpleXmlElement($content); echo "<ul>"; foreach($x->channel->item as $entry) { echo "<li><a href='$entry->link' title='$entry-&g

我有以下代码片段:

function getFeed($feed_url) {

$content = file_get_contents($feed_url);
$x = new SimpleXmlElement($content);

echo "<ul>";

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

echo "</ul>";
}
函数getFeed($feed\u url){ $content=file\u get\u contents($feed\u url); $x=新的SimpleXmlElement($content); 回声“
    ”; foreach($x->channel->item as$entry){ 回声“
  • ”; 回声“
  • $entry->content
  • ”; 回声“
”; } 除了
$entry->content

该部分未注册。在实际提要中,标记列为
,但我无法将其添加到提要中。有什么建议吗?

中,
内容
是标记名,而
编码
是标记名

您必须使用。请参阅的输出

var_dump($entry->children("content", true));

我建议您使用以下代码:

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>";
        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($feed\u url){ $feed=file\u get\u contents($feed\u url); $feeds=str_replace(“,”,$feeds); $feeds=str_replace(“,”,$feeds); $rss=simplexml\u load\u字符串($feeds); 回声“
    ”; foreach($x->channel->item as$entry){ 回声“
  • ”; echo“
  • $entry->contentEncoded
  • ”; 回声“
”; }
希望这对您有用。

这里的标签名是“编码的”。 试试这个:

$url = 'put_your_feed_URL';

    $rss = new DOMDocument();
    $rss->load($url);
    $feed = array();
    foreach ($rss->getElementsByTagName('item') as $node) {
        $item = array (
                'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
                'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
                'pubDate' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue,
                'description' => $node->getElementsByTagName('description')->item(0)->nodeValue,
                'content' => $node->getElementsByTagName('encoded')->item(0)->nodeValue

                );
        array_push($feed, $item);
    }
…PHP示例

<?php 
// --------------------------------------------------------------------

$feed_url = 'http://www.tagesschau.de/xml/rss2'; 
$xml_data = simplexml_load_file($feed_url);

// -------------------------------------------------------------------- 

$i=0; 
foreach($xml_data->channel->item as $ritem) { 

// -------------------------------------- 

$e_title       = (string)$ritem->title; 
$e_link        = (string)$ritem->link; 
$e_pubDate     = (string)$ritem->pubDate; 
$e_description = (string)$ritem->description; 
$e_guid        = (string)$ritem->guid; 

$e_content     = $ritem->children("content", true);
$e_encoded     = (string)$e_content->encoded; 

$n = ($i+1);

// -------------------------------------- 

print '<p> ---------- '. $n .' ---------- </p>'."\n";

print "\n"; 
print '<div class="entry" style="margin:0 auto; padding:4px; text-align:left;">'."\n"; 
print '<p> Title: '. $e_title .'</p>'."\n"; 
print '<p> Link:  '. $e_link .'</p>'."\n"; 
print '<p> Date:  '. $e_pubDate .'</p>'."\n"; 
print '<p> Desc:  '. $e_description .'</p>'."\n"; 
print '<p> Guid:  '. $e_guid .'</p>'."\n"; 
print '<p> Content: </p>'."\n"; 
print '<p style="background:#DEDEDE">'. $e_encoded .'</p>'."\n"; 
print '</div>'."\n"; 


// -------------------------------------- 

print '<br />'."\n"; 
print '<br />'."\n";

$i++; 
} 

// -------------------------------------------------------------------- 
?>
channel->item作为$ritem){
// -------------------------------------- 
$e_title=(字符串)$ritem->title;
$e_link=(字符串)$ritem->link;
$e_pubDate=(字符串)$ritem->pubDate;
$e_description=(字符串)$ritem->description;
$e_guid=(字符串)$ritem->guid;
$e_content=$ritem->children(“content”,true);
$e_encoded=(字符串)$e_content->encoded;
$n=($i+1);
// -------------------------------------- 
打印“-->.$n.”----

.“\n”; 打印“\n”; 打印“”。“\n”; 打印“Title:”.$e\u Title.

”。“\n”; 打印“链接:”.$e\u链接。“

”。“\n”; 打印“日期:”.$e_pubDate.

”。“\n”; 打印“Desc:”.$e_description.

”。“\n”; 打印“Guid:”.$e\u Guid.

”。“\n”; 打印“内容:

”。“\n”; 打印“

”。$e_编码。

”。“\n”; 打印“”。“\n”; // -------------------------------------- 打印“
”。“\n”; 打印“
”。“\n”; $i++; } // -------------------------------------------------------------------- ?>
如果要在浏览器中查看HTML源代码的内容,请使用例如:

print '<pre style="background:#DEDEDE">'. htmlentities($e_encoded) .'</pre>'."\n";
print'.htmlentities($e_encoded)。''.\n;

:=)

这方面的有效答案是:

$e_content = $entry->children("content", true);
$e_encoded = (string)$e_content->encoded;

感谢您在回答时解释标签的含义。我试图用另一个库(iPhone上的TouchXML)解决这个解析问题这有助于我使它工作。评论,以便这将显示在搜索该库以及。:)你应该为此获得更多的赞扬。这是3个解决方案中唯一一个对我工作良好的。这确实是更好的解决方案。我推荐这一个!节省了我很多心痛,而且我正在尝试使用此URL-。获取了标题、博客URL和发布日期。但无法获取描述和图像。对于描述,它是一个
标记。那么我如何获取描述和封面图像呢?我针对另一个问题改进了此答案。请看,我正在尝试使用此URL从媒体获取数据-blog.botreetechnologies.com/feed.get title、博客URL和发布日期。但无法获取描述和图像。对于描述,它是一个标记。那么如何获取描述和封面图像呢?