Php 向RSS源添加图像的正确方法?

Php 向RSS源添加图像的正确方法?,php,mysql,xml,rss,Php,Mysql,Xml,Rss,每个项目一个,而不是整个提要的徽标 我使用php从数据库中生成带有值的提要。firefox上没有显示任何内容,但如果我在chrome中打开url,我可以看到所有的xml输出,我觉得很好 我不确定的一件事是包括图像,我使用了这个网站并实现了它所说的: 我也看到过这样的问题:。这可能是最好的方法,我假设有一个php函数来确定图像的文件大小 我所看到的最常见的方式也是这样一个问题: 我试着验证这个feed,以测试它为什么不在firefox上显示,但因为它太大了,所以我访问过的网站都无法验证它。这可能

每个项目一个,而不是整个提要的徽标

我使用php从数据库中生成带有值的提要。firefox上没有显示任何内容,但如果我在chrome中打开url,我可以看到所有的xml输出,我觉得很好

我不确定的一件事是包括图像,我使用了这个网站并实现了它所说的:

我也看到过这样的问题:。这可能是最好的方法,我假设有一个php函数来确定图像的文件大小

我所看到的最常见的方式也是这样一个问题:

我试着验证这个feed,以测试它为什么不在firefox上显示,但因为它太大了,所以我访问过的网站都无法验证它。这可能就是为什么它没有在Firefox上显示的原因(在我截断
CDATA
部分以及尝试添加图像之前的某个时刻,它曾经显示过)

唯一的问题是我不确定它在我的提要中的位置。请参见下面的源代码和示例输出:

来源(减去不必要的内容,如包含等)

标题(“内容类型:应用程序/rss+xml;字符集=utf-8”);
$rssfeed=''。“\n”;
$rssfeed.=''。“\n”;
$rssfeed.=''。“\n”;
$rssfeed.='rssfeed'。“\n”;
$rssfeed.='http://www.website.co.uk' . “\n”;
$rssfeed.=“来自www.website.co.uk的RSS提要”。“\n”;
$rssfeed.='en-uk'。“\n”;
$rssfeed.=“版权所有(C)2011网站.co.uk”。“\n\n”;
$query='选择*
来自英国新闻报道第t1篇
内部加入英国新闻报道文章照片t2
在t1.id=t2.newsArticleID上
内部连接英国新闻访问照片t3
在t2.newsPhotoID=t3.id上
按t1.publishDate DESC;订购;
$result=mysql_query($query)或die(“无法执行查询”);
while($row=mysql\u fetch\u数组($result)){
摘录(行);
$rssfeed.=''。\n\t;
$rssfeed.=''.$row['headline'].'.'。“\n\t”;
$link='1http://www.website.co.uk';
$url='.$link.'/'.$row['newsArticleID'];
$rssfeed.=''.$url'.'.'.“\n\t”;
$rssfeed.=''.$url'.'.'.“\n\t”;
$text=$row['text'];
$rssfeed.=''。\n\t;
//$rssfeed.=''.htmlentities($text)。''。\n\t;
//添加图像
$rssfeed.=''。\n\t;
$rssfeed.='.date(“D,D M Y H:i:s O”,strottime($row['publishDate']))。'。“\n”;
$rssfeed.=''。\n\n;
}
$rssfeed.=''。“\n”;
$rssfeed.=''。“\n”;
echo$rssfeed;
示例输出

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>RSS feed</title>
<link>http://www.website.co.uk</link>
<description>RSS feed from www.website.co.uk</description>
<language>en-uk</language>
<copyright>Copyright (C) 2011 website.co.uk</copyright>

<item>
<title>Some Title</title>
<link>http://www.website.co.uk/news/articles/slug</link>
<guid>http://www.website.co.uk/news/articles/slug</guid>
<description><![CDATA[<p>Text</p>
<p>More text</p>
<p>Posted by Firstname Lastname</p>]]></description>
<media:thumbnail url="http://www.website.co.uk/img/image.jpg" height="300" width="203" />
<pubDate>Mon, 03 Oct 2011 16:57:09 +0000</pubDate>
</item>
....
....
</channel>
</rss>

RSS源
http://www.website.co.uk
来自www.website.co.uk的RSS源
英国
版权所有(C)2011网站.co.uk
一些头衔
http://www.website.co.uk/news/articles/slug
http://www.website.co.uk/news/articles/slug
正文

更多文本

按姓Lastname发布

]> 2011年10月3日星期一16:57:09+0000 .... ....


通过在
CDATA
部分中插入以下内容,将图像包括在内:

$text = $row['text'];
$image = '<p><img class="center" src="' . $row['mediumURL'] . '"  alt="' . $row['htmlAlt'] . '"/></p>';
$description = $image . $text;

$rssfeed .= '<description><![CDATA[' . $description . ']]></description>' . "\n\t";
$text=$row['text'];
$image='

'; $description=$image$文本; $rssfeed.=''。“\n\t”;

是的,我刚刚意识到我完全错过了那篇博客文章中的
一行。仍然没有在FF中显示:(不验证它-
无法验证,由于硬编码资源限制(提要长度>2000000字节)
,可能必须限制db结果,并以这种方式尝试。嗯,只是减小了提要的大小,效果很好,但没有图像
$text = $row['text'];
$image = '<p><img class="center" src="' . $row['mediumURL'] . '"  alt="' . $row['htmlAlt'] . '"/></p>';
$description = $image . $text;

$rssfeed .= '<description><![CDATA[' . $description . ']]></description>' . "\n\t";