【问题标题】:rss feed not displayingRSS提要不显示
【发布时间】:2014-01-31 09:38:16
【问题描述】:

我正在尝试创建一个显示我所有新闻的 RSS 提要。 到目前为止,代码似乎已经完成了一半,因为如果我查看页面源代码,所有内容都在那里,但实际页面上没有显示任何内容。

这是我的代码 rss.php

<?php
ini_set('display_errors', 1);
header("Content-type: text/xml");

include("config.php");
global $NEWS;
$str = '<?xml version="1.0" encoding="utf-8"?>';
$str.= '<rss version="2.0">';
$str.='<channel>';
$sql = "SELECT * FROM $NEWS";

$result = mysql_query($sql) or die ($sql."".mysql_error());

while($row = mysql_fetch_object($result)){
    $str.= '<item>';
    $str.=' <a href="'.getSEOLink(13).'&article='.$row->id.'">';
    $str.= '<title>'.$row->title.'</title></a>'; 
    $str.= '<description><![CDATA['.$row->content. ']]></description>';
    $str.= '</item>';
}

$str .='</channel>';
$str .='</rss>';
echo $str;
?>

【问题讨论】:

  • 您介意将网址发布到供稿吗?这样会更容易调试!
  • 目前在我的本地主机上

标签: php xml rss


【解决方案1】:

为什么不使用asXMLSimpleXMLElement 呢?

<?php
ini_set('display_errors', 1);
include("config.php");
global $NEWS;

$str='<channel>';
$sql = "SELECT * FROM $NEWS";

$result = mysql_query($sql) or die ($sql."".mysql_error());

while($row = mysql_fetch_object($result)){
    $str.= '<item>';
    $str.=' <a href="'.getSEOLink(13).'&article='.$row->id.'">';
    $str.= '<title>'.$row->title.'</title></a>';
    $str.= '<description><![CDATA['.$row->content. ']]></description>';
    $str.= '</item>';
}

$str .='</channel>';

$xml=new SimpleXMLElement($str);
echo $xml->asXML();

【讨论】:

  • 我还有其他方法可以告诉你。当我把它放在这里时,它告诉我它太长了
  • 我做了一些事情,现在我只有这个错误。 Warning: SimpleXMLElement::__construct(): Entity: line 1: parser error : EntityRef: expecting ';' in /Applications/MAMP/htdocs/baking/site/rss.php on line 55
【解决方案2】:

您显然正在生成有效的 XML(因此您的浏览器没有抱怨)但不是有效的 RSS(因此提要阅读器将无法阅读您的内容)。例如,&lt;a&gt; 不是一个有效的 RSS 标签,也绝对不是&lt;item&gt; 的子标签。

复制生成的 XML(不是 PHP 源代码)并使用您最喜欢的 RSS 验证器(例如 W3C Feed Validation Service)对其进行验证。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-23
    • 1970-01-01
    • 2012-04-26
    • 1970-01-01
    • 1970-01-01
    • 2020-06-06
    • 1970-01-01
    相关资源
    最近更新 更多